作者:860520430_a87a12 | 来源:互联网 | 2023-02-12 22:27
有没有办法在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"查询中简单添加整理NOCASE并不能解决我的问题.
1> Gordon Linof..:
一种方法是:
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')
列的排序规则用于整个表达式.