如何检查查询的结果是否等于来自SQL中另一个查询的结果之一?
问题描述:
我的目标查询返回或者1或0取决于某些条件是否满足:如何检查查询的结果是否等于来自SQL中另一个查询的结果之一?
SELECT TOP 1
ISNUMERIC(LEFT(Attachment, 4)) as Column1,
ISNUMERIC(SUBSTRING(Attachment, 5, 4)) as Column2
--Column3 to be included
FROM Table1
截至目前,其结果是:
Column1|Column2
1 0
我想包括栏3成我的目标查询。我想要的结果是前两列中的1或0。我想使用以下查询以确定结果:
SELECT
Description
FROM Table2
WHERE Status = 1
的结果如下:
AA
BB
CC
我要检查是否SELECT SUBSTRING(附件,9,2)FROM表1 =一个的结果来自表2。如果找到匹配,我想要1,如果不是0.我可能需要使用CASE结构,但我不确定。
答
您可以使用case
和exists
或in
:
SELECT TOP 1 ISNUMERIC(LEFT(t1.Attachment, 4)) as Column1,
ISNUMERIC(SUBSTRING(t1.Attachment, 5, 4)) as Column2,
(CASE WHEN SUBSTRING(Attachment, 9, 2) IN (SELECT Description FROM Table2 WHERE Status = 1)
THEN 1 ELSE 0
END) as Column3
FROM Table1 t1;
+0
谢谢。在阅读你的答案之前,我想清楚了。我使用完全相同的结构 - 它的工作原理。 – DanteeChaos
样本数据 - 在'Table1'和'Table2'和期望的结果中的文字表格的形式 - 将是一个很大的帮助。 –