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
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. |