एक विकल्प जिसका उल्लेख नहीं किया गया है वह है citext
इंस्टॉल करना विस्तार
जो PostgreSQL 8.4+ के साथ आता है और citext
. की एक सरणी का उपयोग करता है :
regress=# CREATE EXTENSION citext;
regress=# SELECT 'foo' = ANY( '{"Foo","bar","bAz"}'::citext[] );
?column?
----------
t
(1 row)
यदि आप इसके बारे में सख्ती से सही होना चाहते हैं और एक्सटेंशन से बचना चाहते हैं तो आपको कुछ बहुत बदसूरत सबक्वेरी क्योंकि Pg में कई समृद्ध सरणी संचालन नहीं हैं, विशेष रूप से कोई कार्यात्मक मानचित्रण संचालन नहीं है। कुछ इस तरह:
SELECT array_agg(lower(($1)[n])) FROM generate_subscripts($1,1) n;
... जहां $1 सरणी पैरामीटर है। आपके मामले में मुझे लगता है कि आप थोड़ा धोखा दे सकते हैं क्योंकि आपको सरणी के क्रम को संरक्षित करने की परवाह नहीं है, इसलिए आप कुछ ऐसा कर सकते हैं:
SELECT 'foo' IN (SELECT lower(x) FROM unnest('{"Foo","bar","bAz"}'::text[]) x);