日期:2014-05-17  浏览次数:20488 次

多个字段合并成一个字段
我处理老数据库的数据时遇到如下问题:有多个字段,需要将它们合并成一个字段,以顿号分开,sql语句如下:update 表 set 合并后新字段=isnull(字段1,'')+'、'+ isnull(字段2,'')+'、'+(.......)
但如果有字段空值时遇到如下问题:新合并的字段的值会遇到 (1)如果字段1为空是会出现以顿号开头的值  、字段2,(2)如果相连的字段出现空值,会出现多个顿号、、、,怎么解决这个问题。谢谢

------解决方案--------------------
如果是sql 2005以上,可以用正则过滤下。
------解决方案--------------------
换种方法吧,给你写一个我能想到的,不知道有没有更简单的
SQL code

DECLARE @newdata NVARCHAR(MAX)
SELECT @newdata =(''
    + CASE WHEN [字段1] IS NOT NULL THEN [字段1]+'、' ELSE '' END
    + CASE WHEN [字段2] IS NOT NULL THEN [字段2]+'、' ELSE '' END
    + ...
)FROM [表名]
UPDATE [表名] SET [新字段] = LEFT(@newdata,LEN(@newdata)-1)

------解决方案--------------------
case when