Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

как да генерирам заявка в SQL SERVER 2005, която дава изход като Matrix?

Нещо подобно с помощта на CTE и row_number() :

Демо на Fiddle

декларирайте @numRows int =8;с cte като ( изберете columnA X, row_number() над (подреждане по колонаA) rn от Table1) изберете c1.x A, c2.x B, c3.x C, c4.x Dот cte c1 ляво присъединяване към cte c2 на c1.rn =[email protected] ляво присъединяване cte c3 към c1.rn =c3.rn-(@numRows * 2) ляво присъединяване cte c4 към c1.rn =c4.rn-(@numRows * 3)където c1.rn <=@numRows 

резултати:

<предварителен код>| A | B | C | D ||---|----|----|----|| 1 | 9 | 17 | 25 || 2 | 10 | 18 | 26 || 3 | 11 | 19 | 27 || 4 | 12 | 20 | 28 || 5 | 13 | 21 | 29 || 6 | 14 | 22 | 30 || 7 | 15 | 23 | 31 || 8 | 16 | 24 | 32 |

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Динамична PIVOT заявка на SQL Server?

  2. SQL Server заместете, премахнете всички след определен знак

  3. защо не мога да създам SQL база данни във VS 2010?

  4. SQL Management Studio и TFS

  5. Как да намалите размера на таблицата на SQL Server, която е нараснала от промяна на типа данни