From: | Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr> |
---|---|
To: | Samuel ROZE <samuel(dot)roze(at)gmail(dot)com> |
Cc: | pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: Soustraction de tableaux de varchar |
Date: | 2010-11-28 16:55:56 |
Message-ID: | m2k4jxie03.fsf@2ndQuadrant.fr |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Samuel ROZE <samuel(dot)roze(at)gmail(dot)com> writes:
> J'utilise le module intarray notamment pour les opérateurs entre
> tableaux d'entiers. Actuellement, j'essaye de soustraire
> un tableau de varchar à un autre.
À mon avis une approche intéressante serait de faire le travail au
opérations sur les ensembles de SQL. Je pense à EXCEPT :
La concaténation existe déjà
dim=# SELECT ARRAY['bonjour', 'hello'] || ARRAY['hola'];
?column?
----------------------
{bonjour,hello,hola}
(1 row)
Comment retirer un élément :
dim=# select unnest(ARRAY['bonjour', 'hello', 'hola']) except select unnest(array['hello', 'hola']);
unnest
---------
bonjour
(1 row)
Et si on veut un tableau à nouveau, au lieu d'une ligne par élément :
dim=# select array_agg(x) from (select unnest(ARRAY['bonjour', 'hello', 'hola']) except select unnest(array['hello', 'hola'])) as t(x);
array_agg
-----------
{bonjour}
(1 row)
Bonne fin de dimanche,
--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support
From | Date | Subject | |
---|---|---|---|
Next Message | Samuel ROZE | 2010-11-28 17:16:44 | Re: Soustraction de tableaux de varchar |
Previous Message | Samuel ROZE | 2010-11-28 15:18:54 | Re: Soustraction de tableaux de varchar |