sql语句替换问题

我现在有一个表,里边有三个列,MC1,MC2,MC3,这三列里有的有数据,有的没有数据,现在我新建了一列MC,要使MC列中得到如下结果该怎么办?求大仙。... 我现在有一个表,里边有三个列,MC1,MC2,MC3,这三列里有的有数据,有的没有数据,现在我新建了一列MC,要使MC列中得到如下结果该怎么办?求大仙。 展开
 我来答
badkano
2013-03-11 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144776 获赞数:885374
团长

向TA提问 私信TA
展开全部
update 表 set mc=mc1+'$'+mc2+'$'+mc3+'$';
然后执行
update 表 set mc = substring(mc,2,length(mc)-1) where mc like '$%';
后一句最多执行2遍就行,就是怕mc1和mc2都为空,直接填充$的情况
追问
基本可以,但是如果MC1为空的话就实现不了了,能解决吗?
追答
其实我觉得下边那哥们的比较正确
为空不就赋值$了吗?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sino_Ting
2013-03-11 · 超过52用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:100%
帮助的人:77.3万
展开全部
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来执行的话,要把所有的单引号替换成两个单引号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
WHITE_WIN
2013-03-11 · TA获得超过6111个赞
知道大有可为答主
回答量:3759
采纳率:50%
帮助的人:1927万
展开全部
如果没有数据的列是空值(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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式