[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [postgresql-it] sub case (?)



Il 28 aprile 2012 17:42, Roberto Marzialetti
<roberto.marzialetti@xxxxxxxxx> ha scritto:
> ho una select che in meta-linguaggio dovrebbe essere fatta cosi'
>
> CASE
>        WHEN gruppo_id = 'CLI' THEN
>                CASE
>                        WHEN soggetti.tipo = 'A' THEN soggetti.ragione_sociale
>                        ELSE nome || ' ' || cognome -- privato
>                AND AS cliente
>        WHEN gruppo_id = 'INT' THEN intermediari.ragione_sociale
>        ELSE ''
> END AS persona
>
> in pratica deve valutare
> se gruppo_id = 'CLI'
>   allora deve valutare anche se tipo = 'A' o 'C'
> altrimenti
> se  gruppo_id = 'INT'
>
> come posso fargli valutare anche il tipo dopo il primo case?
>
> grazie

oltre a quanto detto da Chris, se vuoi puoi fare anche in questo modo,
se preferisci non utilizzare i case annidati:

CASE
  WHEN gruppo_id = 'CLI' AND soggetti.tipo = 'A' THEN soggetti.ragione_sociale
  WHEN gruppo_id = 'CLI' AND soggetti.tipo != 'A' THEN  nome || ' ' || cognome
  WHEN gruppo_id = 'INT' THEN intermediari.ragione_sociale
  ELSE ''
END AS persona

sorry ma al momento non ricordo se il diverso da è <> o !=...

Non sono sicuro sia necessario mettere la condizione AND soggetti.tipo
!= 'A' , la lascerei comunque per chiarezza

my € 0,02
ciao
riki