Re: Remplacer la valeur d'un champ par rien si elle est identique à celle de la ligne précédente

From: "Daniel Verite" <daniel(at)manitou-mail(dot)org>
To: "Denis =?ISO-8859-15?Q?Bitouz=E9?=" <dbitouze(at)wanadoo(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: Remplacer la valeur d'un champ par rien si elle est identique à celle de la ligne précédente
Date: 2010-01-21 17:22:58
Message-ID: c89f6158-36dd-4969-a825-92686e7772c1@mm
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Denis Bitouzé wrote:

> imaginons qu'une requête porte sur plusieurs champs avec tri sur l'un
> d'entre eux. Y a-t-il moyen (j'en doute, mais sait-on jamais) de
> remplacer, sur chacune des lignes, la valeur de ce champ par rien si
> elle est identique à celle de la ligne précédente.

C'est possible avec une fonctionnalité de fenêtrage (donc la version 8.4).
Si la colonne s'appelle champ, il faudrait la remplacer dans le select final
par l'expression:

CASE WHEN row_number() over (partition by champ order by champ)=1
THEN champ
ELSE null
END

Cordialement,
--
Daniel
PostgreSQL-powered mail user agent and storage: http://www.manitou-mail.org

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Denis Bitouzé 2010-01-21 17:41:05 Re: Remplacer la valeur d'un champ par rien si elle est identique à celle de la ligne précédente
Previous Message François Figarola 2010-01-21 16:35:41 Re: Utilité des CPU multi-core