我正在尝试将行转换为列。请查看以下示例:

colname  |  data1 |   data2

---------|--------|------------------------------------
     a   |    1   |
     a   |    2   |
     a   |    3   |
     b   |    4   |
     b   |    5   |
     c   |        |     6
     c   |        |     7


我希望输出为:

      a  |   b     |   c

---------|--------|------------------------------------
     1   |        |
     2   |        |
     3   |        |
         |    4   |
         |    5   |
         |        |     6
         |        |     7


有人可以分享您关于如何解决此问题的想法吗?

最佳答案

这并不是将行放入列中。因此,这不是必需的PIVOT。
您只想在某些列中显示值,具体取决于值名称。
CASE WHEN可以用于此。


select
case when colname = 'a' then data1 end as a,
case when colname = 'b' then data1 end as b,
case when colname = 'c' then data2 end as c
from yourtable;

关于mysql - SQL将行转换为列而无聚集或枢轴,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39699356/

10-13 07:14