多个字段合并成一个字段
我处理老数据库的数据时遇到如下问题:有多个字段,需要将它们合并成一个字段,以顿号分开,sql语句如下:update 表 set 合并后新字段=isnull(字段1,'')+'、'+ isnull(字段2,'')+'、'+(.......)
但如果有字段空值时遇到如下问题:新合并的字段的值会遇到 (1)如果字段1为空是会出现以顿号开头的值 、字段2,(2)如果相连的字段出现空值,会出现多个顿号、、、,怎么解决这个问题。谢谢
[解决办法]
如果是sql 2005以上,可以用正则过滤下。
[解决办法]
换种方法吧,给你写一个我能想到的,不知道有没有更简单的
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