PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL केस असंवेदनशील सरणी पर चयन करें

एक विकल्प जिसका उल्लेख नहीं किया गया है वह है 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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL से PL/pgSQL आउटपुट को CSV फ़ाइल में सेव करें

  2. SQL क्वेरी स्तंभ मौजूद नहीं है त्रुटि

  3. पहले से परिभाषित पर्यावरण चर पर putenv () की आवश्यकता क्यों है?

  4. Postgresql और नोड js . में एक समान खोज कैसे करें

  5. Windows पर PostgreSQL ODBC सेट करना