我有一张桌子
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
答案 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);