sql语句替换问题
我现在有一个表,里边有三个列,MC1,MC2,MC3,这三列里有的有数据,有的没有数据,现在我新建了一列MC,要使MC列中得到如下结果该怎么办?求大仙。...
我现在有一个表,里边有三个列,MC1,MC2,MC3,这三列里有的有数据,有的没有数据,现在我新建了一列MC,要使MC列中得到如下结果该怎么办?求大仙。
展开
展开全部
update 表 set mc=mc1+'$'+mc2+'$'+mc3+'$';
然后执行
update 表 set mc = substring(mc,2,length(mc)-1) where mc like '$%';
后一句最多执行2遍就行,就是怕mc1和mc2都为空,直接填充$的情况
然后执行
update 表 set mc = substring(mc,2,length(mc)-1) where mc like '$%';
后一句最多执行2遍就行,就是怕mc1和mc2都为空,直接填充$的情况
追问
基本可以,但是如果MC1为空的话就实现不了了,能解决吗?
追答
其实我觉得下边那哥们的比较正确
为空不就赋值$了吗?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
update 表 set mc=(Case when isnull(MC1,'')='' THEN '' Else MC1+'$' End)+(Case when isnull(MC2,'')='' THEN '' Else MC2+'$' End)+(Case when isnull(MC3,'')='' THEN '' Else MC3+'$' End)
追问
提示 ‘then’附近有语法错误
追答
我刚刚又测试了,没有问题呀(上面那句记得是一行,不要变成两行了)。
但如果你是拼字符串用EXEC sp_executesql来执行的话,要把所有的单引号替换成两个单引号
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果没有数据的列是空值(NULL)就这样写
SELECT MC=ISNULL(MC1+'$','')+ISNULL(MC2+'$','')+ISNULL(MC3+'$','') FROM TABLENAME
否则要这样
SELECT MC=CASE WHEN MC1>'' THEN MC1+'$' ELSE '' END,
+CASE WHEN MC2>'' THEN MC2+'$' ELSE '' END,
+CASE WHEN MC3>'' THEN MC3+'$' ELSE '' END
FROM TABLENAME
SELECT MC=ISNULL(MC1+'$','')+ISNULL(MC2+'$','')+ISNULL(MC3+'$','') FROM TABLENAME
否则要这样
SELECT MC=CASE WHEN MC1>'' THEN MC1+'$' ELSE '' END,
+CASE WHEN MC2>'' THEN MC2+'$' ELSE '' END,
+CASE WHEN MC3>'' THEN MC3+'$' ELSE '' END
FROM TABLENAME
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询