Sql 将第一列中的每一行与第二列中的所有行进行比较
我有一个有两列的表。我想将第一列中的每一行与第二列中的所有行进行比较。如果匹配,我需要在第3列中插入“是”,如果不匹配,我需要插入“否”Sql 将第一列中的每一行与第二列中的所有行进行比较,sql,sql-server,Sql,Sql Server,我有一个有两列的表。我想将第一列中的每一行与第二列中的所有行进行比较。如果匹配,我需要在第3列中插入“是”,如果不匹配,我需要插入“否” First second A B C D E A X c 输出应该是 First second yesOrno A B yes C D yes E A NO X c NO 对同一表格使用EXISTS UPDATE
First second
A B
C D
E A
X c
输出应该是
First second yesOrno
A B yes
C D yes
E A NO
X c NO
对同一表格使用
EXISTS
UPDATE T1 SET
ThirdColumn = CASE WHEN EXISTS (
SELECT
'a SecondColumn match exists'
FROM
YourTable AS T2
WHERE
T1.FirstColumn = T2.SecondColumn) THEN 'Yes' ELSE 'No' END
FROM
YourTable AS T1
您可以按如下方式通过自连接获得它
select T1.First,T1.second,(case when T2.second is null then 'no' else 'yes' end) as yesOrno from T as T1 left join T as T2
on T1.First=t2.second
检查sql FIDLE:您可以这样做:
declare @t table (
C1 char(1),
C2 char(1)
)
insert @t
values ('A','B'),
('C','D'),
('E','A'),
('X','C')
select t1.C1,t1.C2, case when t2.C2 is null then 'No' else 'Yes' end YesOrNo
from @t t1 left join @t t2
on t1.C1 = t2.C2
有许多不同的方法可以编写这个基本查询。您好,欢迎使用SO。如果您已经为此编写了代码,但无法开始工作,那么您就来对了地方。只需将代码的相关部分添加到其中。您需要展示自己的努力,因为堆栈溢出不是“为我编写代码”服务。另外,请看。到目前为止,您对答案有几次随机猜测。它们看起来都很合理,但三者都有很大的不同。这是因为你的问题没有多大意义。“第一列的每一行”???这是什么意思?这是本书的哪一章的作业?你可能应该用老师现在介绍的任何技巧来解决这个问题,这样他就不会知道你作弊了。你能添加更多信息吗?我正要发布类似的信息,但是如果你只想每个结果一行,你需要t1.c1上的group by和MAX/pivot案例语句。我没有得到你的查询。我想比较第一列中的第一行和第二列。如果存在,我想在第三列中插入“是”,否则插入“否”。然后在第一列中插入第二行,所有行都在第二列中
declare @t table (
C1 char(1),
C2 char(1)
)
insert @t
values ('A','B'),
('C','D'),
('E','A'),
('X','C')
select t1.C1,t1.C2, case when t2.C2 is null then 'No' else 'Yes' end YesOrNo
from @t t1 left join @t t2
on t1.C1 = t2.C2