如何检查查询的结果是否等于来自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结构,但我不确定。

+0

样本数据 - 在'Table1'和'Table2'和期望的结果中的文字表格的形式 - 将是一个很大的帮助。 –

您可以使用caseexistsin

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