2

私が探していたものとまったく同じ質問を読んだだけです: SOオリジナルの質問

'Col'列を持つテーブル'Tab'があるとしましょう

テーブル'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では機能しないように見えます。必要。

SQLServer2008のメソッド

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

SQLite 3の代替方法はありますか?

4

1 に答える 1

1

SQLiteでは、句SELECTなしで使用して、1つの固定レコードのみを返すことができます。複数のレコードを取得するには、それらを(重複をチェックしないためよりもわずかに高速です)とFROM組み合わせます。UNION ALLUNION

SELECT 2 AS Col UNION ALL
SELECT 3        UNION ALL
SELECT 6        UNION ALL
SELECT 7                 
EXCEPT
SELECT Col FROM Tab
于 2013-02-01T23:13:28.513 に答える