Re: comportamiento ex traño

From: Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>
To: elcotorro(at)gmail(dot)com,pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: comportamiento ex traño
Date: 2009-05-03 14:42:12
Message-ID: 20090503143126.M75817@fcm.unc.edu.ar
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Federico...

On Sun, 3 May 2009 11:40:32 -0200, elcotorro wrote
> hola, los molesto por el siguiente caso
> tengo una tabla con un campo character var de 20
> en la cual tengo 2 registros con los siguientes valores
> " 900730" y
> " 999"
> ambos tamaño de ambos es de 20 caracteres completados a la derecha
> restando el len del numero

El problema está en el tipo de datos. ¿Para qué poner un campo de caracteres
cuando vas a almacenar números?. Podrías tranquilamente declararlo como un
bigint y el ordenamiento sería correcto:

> si pido el max de exe campo...... me sale " 999"

Exactamente. Hice la prueba:

seba=# CREATE TEMP TABLE mitablita(micampito varchar(20));
CREATE TABLE
seba=# INSERT INTO mitablita VALUES(' 900730'),('
999');
INSERT 0 2
seba=# SELECT MAX(micampito) FROM mitablita ;
max
----------------------
999
(1 fila)

> y si ordeno por ese campo lo ordena mal al igual que el max

Bueno, eso no es así en mi caso:

seba=# SELECT * FROM mitablita ORDER BY micampito;
micampito
----------------------
900730
999
(2 filas)

Pero como te decía antes, vos estás esperando que trate a los números como
números, pero en realidad los está tratando como cadenas de caracteres. Lo
podrías hacer es castear indicando que son números:

seba=# SELECT MAX(micampito::numeric) FROM mitablita ;
max
--------
900730
(1 fila)

Pero te ahorrarías éste trabajo indicando correctamente el tipo de datos.
Aparte que no estoy seguro si funcionará en Postgres >= 8.3 (yo estoy
probándolo en 8.2 y casualmente en 8.3 se introdujeron cambios con respecto a
éste tipo de casteos).

> muchas gracias por su atencion

Saludos...

-
-------------------------------------------
Sebastián Villalba
A. Gestión Informática
Facultad de Cs. Médicas
U.N.C. - Argentina
-------------------------------------------

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2009-05-03 18:10:07 Re: [pgsql-es-ayuda] comportamiento extraño
Previous Message Sebastián Villalba 2009-05-03 13:56:45 Re: comportamiento ex traño