如何在SQL Server中的特定条件上附加列值

时间:2018-01-03 15:02:19

标签: sql sql-server

我正在附加数据

的表结构

enter image description here

不应添加没有0值的列值并更新包含列循环名称。因此,对于row1,循环名应为" WIN,SPR,SUM,FAL"和row2应该是" SPR,FAL"

任何人都可以帮助使用逻辑,我使用if运算符检查c1到c12,并且耗时。

提前致谢!!

2 个答案:

答案 0 :(得分:0)

以下是使用Replace

的一种方法
SELECT Replace(CASE WHEN c1 <> '0' THEN c1 + ',' ELSE '' END
               + CASE WHEN c2 <> '0' THEN c2 + ',' ELSE '' END
               ...
               + CASE WHEN c12 <> '0' THEN c12 ELSE ',' END, ',,', '')
FROM   yourtable

答案 1 :(得分:0)

在SQL Server中,我会这样做:

select stuff( ( (case when c1 <> '0' then ',' + c1 else '' end) +
                (case when c2 <> '0' then ',' + c2 else '' end) +
                . . .
                (case when c12 <> '0' then ',' + c12 else '' end),
              ), 1, 1, '')
from t;