SQL - 剩余/不属于
SQL - remainder / not belonging
我是 运行 一个 SQL 查询,其 while 约束包含一些 "id's"。
例如:
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
如果满足某些条件,查询可能 return [1, 2]。我将如何处理 returning [3, 4],即所有不满足条件但仍然是我要包含的列表的一部分的 ID?
谢谢
您可以使用您的 ID 列表创建一个 table,然后根据您的查询执行 EXCEPT
。
SELECT ID FROM
(
SELECT 1 ID
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
)List
EXCEPT
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
假设:如果您的table不包含查询中列出的ID,下面的查询仍然return那个id.
如果这是您获得要包含并满足条件的 ID 结果的方式
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
然后,这是如何获取要包含但不满足条件的 ID 结果
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND NOT (some conditions)
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND NOT some conditions
它应该return你的结果
我是 运行 一个 SQL 查询,其 while 约束包含一些 "id's"。 例如:
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
如果满足某些条件,查询可能 return [1, 2]。我将如何处理 returning [3, 4],即所有不满足条件但仍然是我要包含的列表的一部分的 ID?
谢谢
您可以使用您的 ID 列表创建一个 table,然后根据您的查询执行 EXCEPT
。
SELECT ID FROM
(
SELECT 1 ID
UNION ALL SELECT 2
UNION ALL SELECT 3
UNION ALL SELECT 4
)List
EXCEPT
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
假设:如果您的table不包含查询中列出的ID,下面的查询仍然return那个id.
如果这是您获得要包含并满足条件的 ID 结果的方式
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND some conditions
然后,这是如何获取要包含但不满足条件的 ID 结果
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND NOT (some conditions)
SELECT table.id
FROM TableOne table
WHERE table.id IN (1, 2, 3, 4)
AND NOT some conditions
它应该return你的结果