有没有办法使用" IN" 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"))
在我的" IN"上简单添加整理NOCASE查询无法解决我的问题。
答案 0 :(得分: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')
列的排序规则用于整个表达式。