2017-02-04 27 views
1

in節のすべての要素に敏感に一致する "IN"句をSQLiteで使用する方法はありますか。私はsqlite IN句のCOLLATE NOCASE

select * from Table 
where table.column in ("aaa", "bbb") 

TABLE.COLUMNが「AAA」と「BBB」、選択されていない行でこの結果を持っているクエリを持っています。クエリINは動作しますが、きれいか満足ではありません、私は回避策を提案されている

select * from Table 
where table.column = "aaa" or table.column = "bbb" 
collate NOCASE 

の略記は、あるとして理想的ソリューションは、同じ結果を持っている必要があり

select * from Table 
where upper(table.column) in (upper("aaa"), upper("bbb")) 

シンプルNOCASEに照合追加私の "IN"クエリは私の問題を解決しません。

答えて

7

一つの方法である:ただし

select t.* 
from Table t 
where t.column collate NOCASE in ('aaa' collate NOCASE, 'bbb' collate NOCASE) 

、これは実際に短縮することができる。

select t.* 
from Table t 
where t.column collate NOCASE in ('aaa', 'bbb') 

列の照合は、全体の発現のために使用されます。