我有類似如下的SQL數據庫表:如何轉動行轉換成列(自定義旋轉)
Day Period Subject
Mon 1 Ch
Mon 2 Ph
Mon 3 Mth
Mon 4 CS
Mon 5 Lab1
Mon 6 Lab2
Mon 7 Lab3
Tue 1 Ph
Tue 2 Ele
Tue 3 Hu
Tue 4 Ph
Tue 5 En
Tue 6 CS2
Tue 7 Mth
我想它顯示如下:種類交叉表或數據透視
Day P1 P2 P3 P4 P5 P6 P7
Mon Ch Ph Mth CS2 Lab1 Lab2 Lab3
Tue Ph Ele Hu Ph En CS2 Mth
的
什麼是最理想的方式來做到這一點?有人可以請給我看看Sql代碼嗎?
+1:你是快和有ORDER BY 。所以我只是補充一下:正如你所看到的,動態列需要使用動態SQL。有ANSI PIVOT語法,但它僅在SQL Server 2005+和Oracle 11g上受支持。 – 2010-06-25 19:42:28
我目前在SQLite中這樣做,但它似乎是一個相當密集的操作。有誰知道是否有更高性能的解決方案? – EnemyBagJones 2018-01-30 20:27:27
我不相信SQLite有任何內置的透視功能,所以這可能是你堅持。儘管我不使用SQLite,但也許有人對這個特定的SQL供應商有更多的經驗有更好的主意。 – 2018-01-30 21:21:55