如何检查查询的结果是否等于 SQL 中另一个查询的结果之一?

How to check if the result of a query is equal to one of the results from another query in SQL?

我的目标查询 returns 1s 或 0s 取决于是否满足某些条件:

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

我想将 Column3 包含到我的目标查询中。我想要的结果是前两列中的 1 或 0。我想使用以下查询来确定结果:

SELECT
Description
FROM Table2 
WHERE Status = 1

结果如下:

AA
BB
CC

我想检查 SELECT SUBSTRING(Attachment, 9, 2) FROM Table1 = FROM Table2 的结果之一。如果找到匹配,我想要 1,如果不是 0。我可能需要使用 CASE 结构,但我不确定。

您可以使用 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;