表a
ID Name type
1 "s1" 2
2 "s2" 2
3 "d1" 3
4 "d2" 3表b
ID1 SID DID
1 1 3
SID DID 对应的都是a表的ID
实现结果:
我想把表b中的 SID编号1转化成"s2" DID编号1转化成"d1"
ID Name type
1 "s1" 2
2 "s2" 2
3 "d1" 3
4 "d2" 3表b
ID1 SID DID
1 1 3
SID DID 对应的都是a表的ID
实现结果:
我想把表b中的 SID编号1转化成"s2" DID编号1转化成"d1"
where b.SID=a1.ID and b.DID=a2.ID
inner join a表 a on a.id=b.sid
同样Did也这样update下DID编号1转化成"d1"这个看不明白了。你DID字段中没1看上边对应的是3啊
ID Name type
1 本子 文具
2 毛 文具
3 花 用品
4 杯子 用品表b
id 单据号 产地 文具ID 用品ID
100 2-12-1 湖南 2 4我想要的结果 是:
id 单据号 产地 文具 用品
100 2-12-1 湖南 毛 杯子
set B.文具ID = isnull(A.ID, B.文具ID),
B. 用品ID = isnull(C.ID, B.用品ID)
from b表 B
left join a表 A
on B.文具ID = A.ID
left join a表 C
on b.用品ID = C.ID
set B.文具ID = isnull(A.Name, B.文具ID),
B. 用品ID = isnull(C.Name, B.用品ID)
from b表 B
left join a表 A
on B.文具ID = A.ID
left join a表 C
on b.用品ID = C.ID;with cte as
(
select
B.文具ID,
B.用品ID,
文具Name = A.Name,
用品Name = C.Name
from b表 B
left join a表 A
on B.文具ID = A.ID
left join a表 C
on b.用品ID = C.ID
)
update cte
set 文具ID = isnull(文具Name, 文具ID),
用品ID = isnull(用品Name, 用品ID)
(select a.id,a.name from a) s on s.id=b.文具id
left join(select a.id,a.name from a) t on t.id=b.用品id