2017-10-05 58 views
1

有沒有辦法使用UPPER與LIKE ANY()?Postgres - LIKE ANY UPPER()

我下面舉個例子:

SELECT 
.... 
where skus.number like any ('{"%00130204%", "%00130202"}') 

不幸的是,單品我檢查在這裏可以是不同的情況,所以我試着這樣做:

SELECT 
.... 
where UPPER(skus.number) like any UPPER('{"%00130204%", "%00130202"}')) 

不工作,有什麼辦法讓查詢本身工作嗎?

+0

通常這種類型的事情做是爲了使用使「喜歡」的情況下不敏感。爲什麼不只是使用ilike而不是像? –

回答

2

無需使用鞋幫。使用不區分大小寫的類似「ilike」的版本。

SELECT 
.... 
where skus.number ilike any ('{"%00130204%", "%00130202"}') 
0

與他的回答與@Joe是完全爲你更好的查詢(並跳過哲學思想背後的想法代表了大寫數字)一起,我決定回答您的文章的主題

有沒有辦法使用UPPER和LIKE ANY()?

是 - 那就是:

t=# select UPPER('110013020411') like any (UPPER('{"%00130204%", "%00130202"}')::text[]) comaprison; 
comaprison 
------------ 
t 
(1 row) 

後,您在陣列上的文字表示爲文本,你需要將它轉換回序與ANY (array)