如何检查查询的结果是否等于 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 结构,但我不确定。
您可以使用 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;
我的目标查询 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 结构,但我不确定。
您可以使用 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;