首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server比较两个表中的一列并更新第二个表中的另一列

SQL Server比较两个表中的一列并更新第二个表中的另一列
EN

Stack Overflow用户
提问于 2018-07-31 22:45:37
回答 1查看 25关注 0票数 0

我有两个表,列如下:

表1

代码语言:javascript
复制
company_name | company_id | update_dt | update_user

表2

代码语言:javascript
复制
company_name | company_id | location | validation_sw | update_dt | update_user

我必须比较两个表中company_id列的记录,并且对于Table-2中具有匹配Table-1company_ids的所有记录,我必须将Table 2中相应的validation_sw更新为'Y‘,而对于Table-2中的所有其他记录,我必须将validation_sw更新为'N’。此外,我必须在Table-2中只考虑不同的company_id列,因为每个company_id都映射到不同的location列。

我创建了以下查询(没有考虑Table-2中的distinct company_id,但它仍然不能正常工作,因为它将所有记录更新为'Y‘或'N’,而不仅仅是将匹配记录更新为'Y‘或'N')

查询:

代码语言:javascript
复制
UPDATE Table-2 
 SET validation_sw =  CASE WHEN validation_sw in ( 
     SELECT validation_sw 
     FROM Table-2 tb2 
     INNER JOIN Table-1 tb1 
       ON tb1.company_id = tb2.company_id 
 ) THEN 'Y' 
 ELSE 'N' 
 END;

请帮助我修改查询,以便仅针对匹配的company_id记录将validation_sw更新为'Y‘,对于仅考虑Table-2中的不同company_id列记录的其他记录更新为’N

EN

回答 1

Stack Overflow用户

发布于 2018-07-31 23:09:14

而不是做:

代码语言:javascript
复制
CASE WHEN validation_sw in ( 
     SELECT validation_sw
...

您应该使用Company_id来代替validation_sw

代码语言:javascript
复制
CASE WHEN company_id in ( 
     SELECT company_id
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51616166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档