RE: Ayuda con update

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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