gpt4 book ai didi

sql - 显示表中不存在的 where 子句的元素

转载 作者:行者123 更新时间:2023-12-03 02:44:15 24 4
gpt4 key购买 nike

我根据 where 子句中的 ID 列搜索表。我有一个 ID 列表,这些 ID 可能出现在该表中,也可能不出现。一个简单的查询将为我提供该表中存在的 ID(如果有)。有没有办法也返回未找到的 ID?

Table --

ID
1GH
2BN
3ER

SELECT *
FROM Table
WHERE ID IN (big list 9FG, 1GH, 3UI etc)
--If ID's in above list are not in table, then show those ids.

所需的输出 -

9FG, 3UI were not found in the table

最佳答案

如果我正确理解你需要什么,你可以这样做

SELECT q.id, 
CASE WHEN t.id IS NULL THEN 'no' ELSE 'yes' END id_exists
FROM
(
SELECT '9FG' id UNION ALL
SELECT '1GH' UNION ALL
SELECT '3UI'
) q LEFT JOIN table1 t
ON q.id = t.id

输出:

|  ID | ID_EXISTS ||-----|-----------|| 9FG |        no || 1GH |       yes || 3UI |        no |

or if you just need a list of non-existent ids

SELECT q.id 
FROM
(
SELECT '9FG' id UNION ALL
SELECT '1GH' UNION ALL
SELECT '3UI'
) q LEFT JOIN table1 t
ON q.id = t.id
WHERE t.id IS NULL

输出:

|  ID ||-----|| 9FG || 3UI |

技巧是使用 OUTER JOIN 而不是 WHERE 条件来过滤表中的数据并能够查看不匹配的情况。

这里是SQLFiddle 演示

关于sql - 显示表中不存在的 where 子句的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com