有没有办法在 SQLITE 中使用“IN”子句,该子句将敏感地将列与 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”查询中添加 collate NOCASE 并不能解决我的问题。
最佳答案
一种方法是:
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')
列的排序规则用于整个表达式。
关于sql - SQLite IN 子句上的 COLLATE NOCASE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42035356/