有没有办法使用UPPER和LIKE ANY()?
我有以下示例:
SELECT
....
where skus.number like any ('{"%00130204%", "%00130202"}')
不幸的是,我在这里检查的skus可能是不同的情况,所以我尝试这样做:
SELECT
....
where UPPER(skus.number) like any UPPER('{"%00130204%", "%00130202"}'))
哪个不起作用,有没有办法让这个在查询本身工作?
答案 0 :(得分:2)
无需使用鞋面。请使用不区分大小写的like,“ilike”。
SELECT
....
where skus.number ilike any ('{"%00130204%", "%00130202"}')
答案 1 :(得分:0)
除了完全与@Joe在他的答案上更好地为你查询(并跳过想法背后的哲学以大写字母表示数字),我决定回答你的帖子主题
是的 - 这是:有没有办法使用UPPER和LIKE ANY()?
t=# select UPPER('110013020411') like any (UPPER('{"%00130204%", "%00130202"}')::text[]) comaprison;
comaprison
------------
t
(1 row)
在数组中的上部文本表示为文本后,您需要将其强制转换为与ANY (array)
一起使用