我刚刚读了一个问题,这是我正在寻找的: 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有什么替代方法吗?
答案 0 :(得分:1)
在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