2017-02-04 108 views
1

有沒有辦法在SQLITE中使用「IN」子句,以便將列與in子句中的所有元素進行靈敏匹配。我有一個查詢COLLATE NOCASE on sqlite IN子句

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') 

列的排序規則被用於整個表達式。