Нещо подобно с помощта на CTE
и row_number()
:
декларирайте @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 |