关闭

求一个SQL更新语句,小弟百思不得其解

标签: sqlnull
772人阅读 评论(0) 收藏 举报
分类:

tid(自增) Code     CalExpr
1 ZJ0001 NULL
2 ZJ0002 [CLV]{ZJ0001}+[CLV]{ZJ0004}+[CLV]{ZJ0008}
3 ZJ0004 NULL
4 ZJ0005 [CLV]{ZJ0004}+[CLV]{ZJ0010}
5 ZJ0008 [CLV]{ZJ0010}+3
6 ZJ0010 [CLV]{ZJ0002}+[CLV]{ZJ0001}
7 ZJ0011 [CLV]{ZJ0010}*100
我想要得到的结果是:把 CalExpr 列中出现的 Code 用这个Code 对应的tid 代替,(CalExpr中出现的Code能保证存在)
1 ZJ0001 NULL
2 ZJ0002 [CLV]{1}+[CLV]{3}+[CLV]{5}
3 ZJ0004 NULL
4 ZJ0005 [CLV]{3}+[CLV]{6}
5 ZJ0008 [CLV]{6}+3
6 ZJ0010 [CLV]{2}+[CLV]{1}
7 ZJ0011 [CLV]{6}*100

谢了再说。

while exists (
select 1
from tablename a,tablename b
where a.CalExpr like '%'+b.code+'%'
)
update a
set CalExpr=replace(a.CalExpr,b.code,cast(b.tid as varchar(10)))
from tablename a,tablename b
where a.CalExpr like '%'+b.code+'%'

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:260632次
    • 积分:2971
    • 等级:
    • 排名:第11856名
    • 原创:62篇
    • 转载:53篇
    • 译文:0篇
    • 评论:50条
    最新评论