| From: | Hervé Piedvache <herve(at)elma(dot)fr> | 
|---|---|
| To: | "Remi" <remi(at)chillet(dot)com>, "Francois Suter" <dba(at)paragraf(dot)ch> | 
| Cc: | <pgsql-fr-generale(at)postgresql(dot)org> | 
| Subject: | Re: Re: [pgsql-fr-generale] Comparer des valeurs booléennes | 
| Date: | 2004-02-27 17:58:06 | 
| Message-ID: | 200402271858.06282.herve@elma.fr | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-fr-generale | 
Remi,
Je ne sais pas bien si ca répond à ton problème, mais est-ce que cette 
solution te satisfait ?
select case when exists (select 'x' from table where col1='t') then 't' else 
'f' end as col1, case when exists (select 'x' from table where col2='t') then 
't' else 'f' end as col2
Cordialement,
Le Mercredi 25 Février 2004 00:41, Remi a écrit :
> Bonsoir,
>
>  Oui effectivement le resonnement est juste dans ton exemple mai j'ai
> besoin de comparer les resultats de toutes les lignes d'une colonne. Je
> veux un OR en effet:
>
>  col1 | col2
> ------+------
>    t    | f
>    t    | f
>    f    | f
>    f    | f
>
>    t    |f     --> Voila le resultat que je recherche
>
> Il y a bien la solution de remplacer  true et false par 1 et 0 et de par le
> fait
>
> SELECT max(col1), max(col2) FROM table WHERE condition
>
> fonctionnerai mais je prefererais trouver une solution avec les valeurs
> booléennes  ;-)
>
>
>
> ----- Original Message -----
> From: "Francois Suter" <dba(at)paragraf(dot)ch>
> To: "Remi" <remi(at)chillet(dot)com>
> Cc: <pgsql-fr-generale(at)postgresql(dot)org>
> Sent: Friday, February 20, 2004 12:21 PM
> Subject: Re: [pgsql-fr-generale] Comparer des valeurs booléennes
>
> > > SELECT max(bool1), max(bool2) FROM table WHERE condition;
> > >
> > > En fait j'aimerai effectuer un 'AND' a la palce du 'max' pour avoir
> > > comme resultat : true AND false = true. Pour resumer si j'ai
> > > uniquement des false dans la colonne j'aurais comme resulta false. Si
> > > j'ai au mojns un true dans la colonne j'aurais comme resulta true.
> > > Comment puis faire cette requete car bien evidemment celle de
> > > l'exemple me donne une erreur. J'ai essaye aussi de convertir la
> > > valeur booléenne en entier mais rien a faire:
> >
> > Euh, ben, si tu veux faire un AND, il suffit de le faire:
> >
> > select bool1 AND bool2 from table;
> >
> > Ca marche. En tout cas, avec PostgreSQL 7.3.4.
> >
> > Ceci dit, il me semble que ce que tu veux est un OR, mais ça marche
> > aussi:
> >
> > test=> select * from bouboul;
> >   col1 | col2
> > ------+------
> >   t    | t
> >   t    | f
> >   f    | t
> >   f    | f
> > (4 rows)
> >
> > test=> select col1 OR col2 from bouboul;
> >   ?column?
> > ----------
> >   t
> >   t
> >   t
> >   f
> > (4 rows)
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
-- 
Hervé Piedvache
Elma Ingénierie Informatique
6 rue du Faubourg Saint-Honoré
F-75008 - Paris - France
Pho. 33-144949901
Fax. 33-144949902
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jean-Paul ARGUDO | 2004-02-28 10:05:46 | Re: Des nouvelles... | 
| Previous Message | Jean-Christophe ARNU | 2004-02-27 14:48:00 | Re: Des nouvelles... |