我有类似如下的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