Detectar filas con n ulos

From: Jorge Tornero - Listas <jtorlistas(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Detectar filas con n ulos
Date: 2012-03-14 12:02:27
Message-ID: 4F6088D3.1040104@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos,

estoy intentando crear una vista en la cual el valor de tres columnas
(pongamos por caso ptotal1,ptotal2,ptotal3) depende de los valores de
varias columnas de la tabla original (pngamos por caso peso1,peso2,peso3).

En la tabla de origen pueden haber registros con los tres pesos, con
dos, con uno o con ninguno. Si no hubiera ningún peso registrado, el
valor de la columna ptotalX (entendido como una generalización de
ptotal1,2,3..) sería NULO. Si, por el contrario, alguno de los valores
existiese, cada columna ptotalX tomaría el valor pesoX, salvo que si
pesoX es nulo tendría que tomar el valor 0, para que lo veáis mejor os
muestro las 3 diferentes posibilidades:
CASO 1
pesol1=2.34 --> ptotal1=2.34
pesol2=2.44 --> ptotal2=2.44
pesol3=3.55 --> ptotal3=3.55

CASO 2
pesol1=null --> ptotal1=0
pesol2=2.44 --> ptotal2=2.44
pesol3=3.55 --> ptotal3=3.55

CASO 3
pesol1=null --> ptotal1=null
pesol2=null --> ptotal2=null
pesol3=null --> ptotal3=null

Lo estaba intentando hacer con un case creando un array de los tres
campos y empleando any/some, pero no funciona probablemente porque se
pierde un poco comparando valores nulos. Esto es lo que he hecho para
cada uno de las columnas de la vista:

case when null!=any(array[peso1,peso2,peso3) and peso1 is null then 0
else peso1 end as ptotal1 (con lo cual, si todos son nulos me pondrá
nulo y si alguno de los pesos no lo es, me pondra el peso si el peso no
es nulo y nulo si sí lo es)

Esto para el ptotal1, con los otros dos igual

Esto ya he comprobado que no funciona. ¿Alguna sugerencia?

Un saludo

jorge Tornero
IEO-Cádiz

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Rodrigo Gonzalez 2012-03-14 12:09:45 Re: Por favor, ayuda con esquemas
Previous Message Gilberto Castillo Martínez 2012-03-14 11:53:13 Re: Recuperar base de datos.