Skip site navigation (1) Skip section navigation (2)

Re: Soustraction de tableaux de varchar

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 (view raw or flat)
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

In response to

Responses

pgsql-fr-generale by date

Next:From: Samuel ROZEDate: 2010-11-28 17:16:44
Subject: Re: Soustraction de tableaux de varchar
Previous:From: Samuel ROZEDate: 2010-11-28 15:18:54
Subject: Re: Soustraction de tableaux de varchar

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group