From: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
---|---|
To: | Marcos Saldivar <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com> |
Cc: | List Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: consulta de validacion de inexistencia de campos |
Date: | 2008-03-16 02:09:31 |
Message-ID: | 157137.62577.qm@web63714.mail.re1.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- Marcos Saldivar
<baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com> escribió:
Bueno con un poco de imaginacion a ver si te sirve
este cambio
incialmente tenemos esto
> select case when rut=$1 then 'si' else 'no' end as
> r_rut,case when nombre=$2 then 'si' else 'no' end
as
> r_nombre,case when username=$3 then 'si' else 'no'
end
> as r_username from vista_empleado
> where rut=$1 or nombre=$2 or username=$3
y no te gusto
Ahora lo cambiamos por esto
select max(case when rut=$1 then 1 else 0 end) as
r_rut,max(case when nombre=$2 then 1 else 0 end) as
r_nombre,max(case when username=$3 then 1 else 0 end
as r_username) from vista_empleado
where rut=$1 or nombre=$2 or username=$3
Entonces te va a devolver una sola fila con los
maximos, si el maximo es 0 entonces no coincide en ese
campo, si es uno, por lo menos hay uno en ese campo.
Si quisieras saber cuanto lo tienes repetido podrias
hacer sum.
Este te devuelve un solo registro.
Atte.
Gabriel Colina
____________________________________________________________________________________
¡Capacidad ilimitada de almacenamiento en tu correo!
No te preocupes más por el espacio de tu cuenta con Correo Yahoo!:
http://correo.espanol.yahoo.com/
From | Date | Subject | |
---|---|---|---|
Next Message | Marcos Saldivar | 2008-03-16 02:38:31 | Re: consulta de validacion de inexistencia de campos |
Previous Message | Marcos Saldivar | 2008-03-16 01:19:24 | Re: consulta de validacion de inexistencia de campos |