gpt4 book ai didi

sqlite - SQlite3查询:查找不属于值列表的行。优化

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

我刚读了一个我很想找的问题:
SO original question


假设我有一个表“ Tab”,其中有一个列“ Col”

表“ Tab”具有此数据-

Col
1
2
3
4
5


如果我有一组值(2,3,6,7)。我可以查询的值是
通过查询来显示在表和列表中

Select Col from Tab where col IN (2,3,6,7)


但是,如果我想返回列表中不存在的值
在表中,即在这种情况下仅(6,7)。我应该使用什么查询?


我已经找到了几种涉及创建临时表的解决方案,但是在那里找到的最好的解决方案(至少是较短的,而且我想也是更快的)是针对SQL Server的,在我看来,对于我来说,它不适用于SQLite3需要。


SQL Server 2008方法

SELECT N FROM (VALUES(2),(3),(6),(7)) AS D (N)
EXCEPT
Select Col from Tab



SQLite 3是否有其他替代方法?

最佳答案

在SQLite中,可以使用不带SELECT子句的FROM仅返回一个固定记录。
要获取多个记录,请将它们与UNION ALL组合(比UNION稍快,因为它不检查重复项):

SELECT 2 AS Col UNION ALL
SELECT 3 UNION ALL
SELECT 6 UNION ALL
SELECT 7
EXCEPT
SELECT Col FROM Tab

关于sqlite - SQlite3查询:查找不属于值列表的行。优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14654040/

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