我有下表:
表名:stat
Region M07 M08 M09
---------------------
P1 0 1 0
P2 0 0 0
P3 2 0 0
P4 0 0 0
P5 0 0 0
P6 0 0 0
P7 9 0 3
我想取消月份列,它包含数值。这个月的列标题是动态的,并且会改变,但是列的总数将保持不变。
预期结果
---------------------
Region Month Qty
---------------------
P1 M07 0
P1 M08 1
P1 M09 0
P2 M07 0
P2 M08 0
P2 M09 0
如果我能在编写unpivot的sql语句时得到一些帮助,然后考虑数值列的动态特性,那就太好了。它应该是用mysql写的。
1条答案
按热度按时间vqlkdk9b1#
遗憾的是,mysql没有
UNPIVOT
功能。你最好的选择是
UNION ALL
解决方案,如:可以创建一段sql代码(例如存储过程),通过首先查询
INFORMATION_SCHEMA
检索列名,并使用结果生成查询文本。