我有2个输入sql表,如下所示
表A
Col1 Col2
X Y
R S
Z W
表B
Col1 Col2
X Y
Z W
A Z
如何通过在表A中再添加一列0或1来连接两个表。
预期决赛桌将是。
Col1 Col2 Code
X Y 1
R S 1
Z W 0
我需要从表1中选择所有记录,并且需要在表2中为col1值的存在添加一列作为1或0.如何在sql中实现这一点?
答案 0 :(得分:2)
您可以使用带有LEFT JOIN
表达式的CASE
来生成Code
列:
select a.fname,
a.lname,
case
when b.fname is null
and b.lname is null
then 0
else 1 end Code
from a
left join b
on a.fname = b.fname
and a.lname = b.lname
答案 1 :(得分:2)
您应该可以使用OUTER JOIN
SELECT
t1.fname,
t1.lname,
CASE WHEN t2.fname IS NULL THEN 0 ELSE 1 END as code
FROM
t1
LEFT OUTER JOIN t2
ON t1.fname = t2.fname
AND t1.lname = t2.lname
答案 2 :(得分:1)
您可以将CASE
与EXISTS
:
SELECT fname,
lname,
Code = CASE
WHEN EXISTS(SELECT 1
FROM dbo.B
WHERE b.fname = a.fname) THEN 1
ELSE 0
END
FROM dbo.A
但是,您想要的结果似乎不正确(表B中的X + Z不是X + R)
FNAME LNAME CODE
X Y 1
R S 0
Z W 1