From: | Henry <hensa22(at)yahoo(dot)es> |
---|---|
To: | pablo <pabloste(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | RE: Ayuda con update |
Date: | 2007-11-26 15:31:35 |
Message-ID: | 677933.31787.qm@web30809.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
--- 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.
saludos
______________________________________________
¿En Madrid por primera vez?
Aprovecha el conocimiento de más de 2 millones de personas
http://es.answers.yahoo.com/info/welcome
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Ortega | 2007-11-26 15:41:33 | Re: Ayuda con update |
Previous Message | Alvaro Herrera | 2007-11-26 15:26:44 | Re: Conversión de LATIN1 a UTF8 |