PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL нечувствителен към малки и големи букви SELECT на масив

Една неспомената алтернатива е да инсталирате 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. Свързване на Excel към PostgreSQL чрез VBA

  2. ГРЕШКА:функциите в индексния израз трябва да бъдат маркирани като НЕИЗМЕНИМИ в Postgres

  3. Споделяне на вашите данни с PostgreSQL 11

  4. Система за препоръки за приложение за магазин за книги

  5. Как да изчислим растежа на месец спрямо месец в PostgreSQL