| From: | Samuel ROZE <samuel(dot)roze(at)gmail(dot)com> |
|---|---|
| To: | Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr> |
| Cc: | pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org> |
| Subject: | Re: Soustraction de tableaux de varchar |
| Date: | 2010-11-28 17:16:44 |
| Message-ID: | AANLkTiksnwVq26vW=och_NLa_n91AkRcdgcdUu6yFaGC@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-fr-generale |
Le 28 novembre 2010 17:55, Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr> a écrit :
> 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 :
Serait-ce plus rapide, en théorie? Je vais testé demain en pratique.
> La concaténation existe déjà
>
> dim=# SELECT ARRAY['bonjour', 'hello'] || ARRAY['hola'];
> ?column?
> ----------------------
> {bonjour,hello,hola}
> (1 row)
Oui mais elle ne supprime pas les doublons malheureusement...
> 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)
C'est intéressant je ne connaissais pas except!
Merci!
Bonne fin de week-end.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | REISS Thomas DSIC BIP | 2010-11-29 08:28:20 | Re: Qui sera présent au PGDay Europe 2010 à Stuttgart ? |
| Previous Message | Dimitri Fontaine | 2010-11-28 16:55:56 | Re: Soustraction de tableaux de varchar |