Skip site navigation (1) Skip section navigation (2)

Re: Ayuda con update

From: Miguel Ortega <mortega(at)tc(dot)com(dot)ve>
To: Henry <hensa22(at)yahoo(dot)es>
Cc: pablo <pabloste(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Ayuda con update
Date: 2007-11-26 15:41:33
Message-ID: 474AE92D.7000809@tc.com.ve (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Henry escribió:
> --- pablo <pabloste(at)gmail(dot)com> escribió:
>
>   
>> Estimad(at)s,
>> tengo un problema con un update que necesito
>> ejecutarlo a partir de otro.
>>
>> El problema es que en una tabla tengo 2 datos
>> (dato1, dato2) como texto
>> guardados.
>> quiero validar que dato1 sea: numero, no nulo, mayor
>> que cero.
>>
>> update tabla set dato2 = ' - Error dato1' where
>> is_number(dato1) = 'F' or
>> dato1 is null or dato1 < 0
>> también probé con esta:
>> update tabla set dato2 = ' - Error dato1' where
>> is_number(dato1) = 'F' or
>> dato1 is null or to_number(dato1 < 0)
>>
>> nota: is_number es una función que entrega T si es
>> numero y F si no lo es
>> (funciona super bien)
>>
>> el problema es que en el caso que dato1 sea número
>> funciona super bien. En
>> caso que dato1 tenga un caracter la consulta se cae
>> en la condición "dato1 <
>> 0".
>>     
>
> que quieres decir "la consulta se case"?
> dato1 que tipo de dato es.
> si es varchar o cualquier otro excepto alguno de tipo
> numerico puede ser que no retorne lo que desees, pero
> si no es un valor numerico dato1, realmente no se que
> criterio toma aquella condicion (dato1<0)
>
> si te devueve la funcion F, es obvio que dato1 no es
> numerico,
> entonces puede ser que ahi este el problema.
>
> ahora puede usar to_number(dato1)<0, pero dato1 tiene
> que tener como minimo un numero sino te tira un error.
>   

Hola!!!!

Tal vez es una cochinada y podrías mejorar esa consulta rediseñando 
algunas cosas (Como por ejemplo usar tipos de datos correctos). Pero, 
como sabemos que es muy probable que no lo hagas. Te recomiendo que la 
condicion dato1>0 la utilices con COALESCE COALESCE(dato1,0) >0......

Saludos
>
> saludos
>
>
>
>
>
>
>
>       ______________________________________________ 
> ¿En Madrid por primera vez?
> Aprovecha el conocimiento de más de 2 millones de personas
> http://es.answers.yahoo.com/info/welcome
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
>
>   


-- 
_________________________________________
Miguel A. Ortega B.
Analista de Sistemas y Soporte a Usuarios
<0416 - 642 12 26> / < mortega(at)tc(dot)com(dot)ve>
Technologies Consulting C.A.


In response to

Responses

pgsql-es-ayuda by date

Next:From: Edwin QuijadaDate: 2007-11-26 16:03:32
Subject: RE: Consulta BI
Previous:From: HenryDate: 2007-11-26 15:31:35
Subject: RE: Ayuda con update

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group