我有两个表,列如下:
表1
company_name | company_id | update_dt | update_user表2
company_name | company_id | location | validation_sw | update_dt | update_user我必须比较两个表中company_id列的记录,并且对于Table-2中具有匹配Table-1中company_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')
查询:
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
发布于 2018-07-31 23:09:14
而不是做:
CASE WHEN validation_sw in (
SELECT validation_sw
...您应该使用Company_id来代替validation_sw
CASE WHEN company_id in (
SELECT company_id
...https://stackoverflow.com/questions/51616166
复制相似问题