2017-10-05 2 views
1

Gibt es eine Möglichkeit, UPPER mit LIKE ANY() zu verwenden?Postgres - LIKE ANY UPPER()

Ich habe folgendes Beispiel:

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

Leider ist die skus ich hier die Überprüfung von verschiedenen Fällen sein kann, so dass ich versuchte, dies zu tun:

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

, die nicht funktioniert, Gibt es eine Möglichkeit, dies in der Abfrage selbst funktionieren zu lassen?

+0

verwenden Normalerweise wird diese Art der Sache zu tun ist mache die "Gefällt mir" -Frage unempfindlich. Warum nicht einfach ilike benutzen statt wie? –

Antwort

2

Keine Notwendigkeit, obere zu verwenden. Verwenden Sie stattdessen die case-insensitive Version von like, "ilike".

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

zusammen mit völlig mit @ Joe ist auf seine Antwort als besser für Sie Abfrage (und phylosophy hinter Idee Überspringen Ziffern in Großbuchstaben darstellen), habe ich beschlossen, das Thema Ihrer Post zu beantworten

Gibt es eine Möglichkeit, UPPER mit LIKE ANY() zu verwenden?

ja - hier ist sie:

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

nachdem Sie oberen Text in Array als Text dargestellt, müssen Sie es inorder werfen zurück mit ANY (array)

Verwandte Themen