gpt4 book ai didi

sql - 检查另一个表sql中某列的值是否存在

转载 作者:行者123 更新时间:2023-12-04 04:49:09 26 4
gpt4 key购买 nike

我是 SQL Server 的新手。
我必须将一列的值从表 A 复制到另一个表 B 相对于另一列(JOIN)
但在复制之前,我必须检查该值是否存在于另一个表 C 中。如果是,则复制,否则返回值不在表 C 中的记录。
我的查询是;

IF EXISTS (SELECT Branch_ID FROM ADM_Branch
INNER JOIN UBL$ on ADM_Branch.Branch_Code = UBL$.[Branch Code ]
WHERE ADM_Branch.Branch_Code = [UBL$].[Branch Code] )

UPDATE EMP_Personal
SET Account_Number = UBL$.[Account ] , Bank_ID = 1 , Branch_ID = (select Branch_ID from ADM_Branch join UBL$ on ADM_Branch.Branch_Code = UBL$.[Branch Code ] where EMP_Personal.Emp_ID = UBL$.[Employee ID ])
FROM EMP_Personal JOIN UBL$
ON EMP_Personal.Emp_ID = UBL$.[Employee ID ]


ELSE

( SELECT UBL$.[Employee ID ],UBL$.[Name ],UBL$.[Account ],UBL$.[Branch Code ]
FROM UBL$) except ( SELECT UBL$.[Employee ID ],UBL$.[Name ],UBL$.[Account ],UBL$.[Branch Code ]
FROM UBL$
right join ADM_Branch on ADM_Branch.Branch_Code = UBL$.[Branch Code ])

最佳答案

我认为下面的代码会给你一些想法,我试图保持列名相同,但你可能需要做一些改变:

UPDATE EMP
SET EMP.Account_Number = UBL.[Account ],
EMP.Bank_ID = 1,
EMP.Branch_ID = ADM.Branch_ID
FROM EMP_Personal EMP
JOIN UBL$ UBL ON EMP_Personal.Emp_ID = UBL.[Employee ID ]
JOIN ADM_Branch ADM ON ADM.Branch_Code = UBL.[Branch Code ];

SELECT [Employee ID ],[Name ],[Account],[Branch Code ]
FROM UBL$
WHERE [Branch Code ] NOT IN (SELECT Branch_Code FROM ADM_Branch);

关于sql - 检查另一个表sql中某列的值是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17699045/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com