2016-07-17 12 views
-1

Ich habe Tabelle 1 wie folgt aus:Eine Spalte in 3 Spalten aufteilen?

---------------- 
| id | col | 
---------------- 
| 1 | 7 | 
| 2 | 6 | 
| 3 | 1 | 
| 4 | 8 | 
| 5 | 9 | 
| 6 | 5 | 
| 7 | 4 | 
| 8 | 3 | 
| 9 | 2 | 
---------------- 

Ich möchte neue Tabellendaten aus der Spalte col von Tabelle 1 und erhalten das Ergebnis wie folgt erhalten erstellen: Irgendwelche Vorschläge

------------------- 
| A | B | C | 
------------------- 
| 7 | 6 | 1 | 
| 8 | 9 | 5 | 
| 4 | 3 | 2 | 
------------------- 

? Danke vielmals.

+0

** Nicht sicher, was Sie fragen. ** (Und es gibt eine Möglichkeit, dass Ihre Frage wird aus diesem Grund in die Warteschleife gelegt werden). Wenn du * new table * sagst, meinst du eine Tabelle mit drei 'INTEGER' Feldern namens' A', 'B' und' C'? Fragen Sie, dass für den ersten Datensatz die Spalte "A" das "col" für "id" 1 enthalten sollte, "B" sollte das "col" für "id" 2 usw. enthalten? –

+0

@BobKaufman Ja, ich meine eine neue Tabelle mit drei INTEGER-Feldern namens A, B, C; und in der neuen Tabelle besteht die erste Zeile aus den ersten drei Zeilen der Tabelle 1, die zweite Zeile aus den nächsten drei Zeilen der Tabelle1 usw – Hanaka

Antwort

3

die ID Unter der Annahme, inkrementelle

Declare @Table table (id int,col int) 
Insert Into @Table values 
(1,7), 
(2,6), 
(3,1), 
(4,8), 
(5,9), 
(6,5), 
(7,4), 
(8,3), 
(9,2) 


Select ColA=max(case when ID % 3 = 1 then col else 0 end) 
     ,ColB=max(case when ID % 3 = 2 then col else 0 end) 
     ,ColC=max(case when ID % 3 = 0 then col else 0 end) 
From @Table 
Group By ceiling(ID/3.0) 

Returns

ColA ColB ColC 
7  6  1 
8  9  5 
4  3  2 
Verwandte Themen