mysql根据值获取列名

时间:2014-12-15 07:41:50

标签: sql

我有一张桌子

plu div1 div2 div3 div4
101  3   0    4    0
102  2   4    8    3
103  0   0    0    0
104  5   4    0    1
105  8   6    2    0

我想要关于plu的列的名称,其中列的值不为零。 输出应该是

plu    stores
101    div1,div4
102    div1,div2,div3,div4
103    
104    div1, div2, div3
105    div1, div2, div3

1 个答案:

答案 0 :(得分:0)

这是一种用空格而不是逗号的方法。可能需要在末尾修剪额外的逗号

   select  concat(concat(concat(concat(case when div1!=0 then 'div1,' else ''  end)
    , case when div2!=0 then 'div2,' else '' end)
        , case  when div3!=0 then 'div3,' else  '' end)
            ,case when div4 !=0 then ' div4,' else '' end);