求助:关于SQL SERVER根据查询结果赋值问题

weixin_42072461 2023-01-16 15:51:44

大神救命,搞了好久,实在搞不出来了!

现在有两张表,要按条件把A表的姓名赋值给B表,请问怎么操作:

A表

ID姓名字段一
1张三ABC
2李四EF
3王五D
4赵六GHK
5…………

B表

ID姓名字段二
1 A
2 B
3 C
4 D
5 E

A表“字段一”里的内容不会重复,比如A在这个表里只会在第一行里出现一次,其他任何地方都不会出现。但这个字段可能会是空的。

B表“字段二”的内容也不会重复,每一项都必包含在A表的“字段一”里。

现在的需求是:如果“字段二”包含于“字段一”中,则把“字段一”里的“姓名”填入B表相应的行中。

比如现在能看出来B表的第1、2、3行都属于张三,则第1、2、3行姓名处都填张三;B表第4行属于王五,则姓名填王五;第5行属于李四,则姓名处填李四。以此类推。

请问这个过程在SQL SERVER里用程序自动化要怎么实现。

...全文
38 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

就普通的 merge 语句就行,注意一下表连接条件:

merge into b
using a
on charindex(b.字段二, a.字段一) > 0
when matched then update
set b.姓名 = a.姓名;

wtujedp 01-16
  • 打赏
  • 举报
回复

提供个思路,你试试
把A表改成
张三 A
张三 B
张三 C
的C表,然后拿C表与B表进行关联更新。

发帖
MS-SQL Server

3.4w+

社区成员

MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
帖子事件
创建了帖子
2023-01-16 15:51
社区公告
暂无公告