Lists: | pgsql-es-ayuda |
---|
From: | jcb <jcb(at)greccosoft(dot)es> |
---|---|
To: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Una de comparaciones |
Date: | 2008-01-30 21:59:52 |
Message-ID: | 1201730392.32676.9.camel@hwcasa |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
hola, tengo un problema con los espacios finales de un campo en una
comparación
supongamos un campo de una tabla cualquiera con un campo codigo
char(14)
imaginemos que codigo dentro de la tabla tiene los valores 'AA' y 'BB'
select * from tabla where codigo = 'AA'
Estas select encuentra datos pero esta que sigue no
select * from tabla where codigo = 'AA '
resumiendo ¿hay algun parametro o algo parecido que haga que select
'A'='A ' devuelva true ?
Gracias
From: | "Beto Guerrero" <guerrero(dot)beto(at)gmail(dot)com> |
---|---|
To: | jcb <jcb(at)greccosoft(dot)es> |
Cc: | "Lista Postgres ES" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Una de comparaciones |
Date: | 2008-01-30 22:37:29 |
Message-ID: | cbb40a720801301437sf83b6e7uc063345a238793b7@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
No se su te ayude pero porque no hacer algo como:
select * from tabla where trim(codigo) = trim('AA ')
a menos que a fuerza quieres que te acepte: codigo = 'AA '
2008/1/30, jcb <jcb(at)greccosoft(dot)es>:
> hola, tengo un problema con los espacios finales de un campo en una
> comparación
> supongamos un campo de una tabla cualquiera con un campo codigo
> char(14)
>
> imaginemos que codigo dentro de la tabla tiene los valores 'AA' y 'BB'
>
> select * from tabla where codigo = 'AA'
>
> Estas select encuentra datos pero esta que sigue no
>
>
> select * from tabla where codigo = 'AA '
>
> resumiendo ¿hay algun parametro o algo parecido que haga que select
> 'A'='A ' devuelva true ?
>
> Gracias
>
>
>
>
>
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo
>
--
Atte
Alberto Nicolas Guerrero P.
Desarrollador Java / Open Source
Tel: +51.15331720
Cel: +51.197208984
From: | Juan Caillava <list(dot)bransh(at)gmail(dot)com> |
---|---|
To: | jcb <jcb(at)greccosoft(dot)es> |
Cc: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Una de comparaciones |
Date: | 2008-01-30 23:43:52 |
Message-ID: | 47A10BB8.6010601@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola, podes usar la funcion trim() o btrim() si preferis!
jcb escribió:
> hola, tengo un problema con los espacios finales de un campo en una
> comparación
> supongamos un campo de una tabla cualquiera con un campo codigo
> char(14)
>
> imaginemos que codigo dentro de la tabla tiene los valores 'AA' y 'BB'
>
> select * from tabla where codigo = 'AA'
>
> Estas select encuentra datos pero esta que sigue no
>
>
> select * from tabla where codigo = 'AA '
>
> resumiendo ¿hay algun parametro o algo parecido que haga que select
> 'A'='A ' devuelva true ?
>
> Gracias
>
>
>
>
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podr� leerlo
>
>
From: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> |
---|---|
To: | "Lista Postgres ES" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Una de comparaciones |
Date: | 2008-01-31 00:32:08 |
Message-ID: | 95335e4e0801301632v6eb61f1ft316a06aae2ed111a@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
> > resumiendo ¿hay algun parametro o algo parecido que haga que select
> > 'A'='A ' devuelva true ?
Además, depende del tipo de dato que uses.
Mira este ejemplillo. Parece que usando char(n) hace lo que tú quieres
Miguel=> create table xa(a text, b varchar(10), c char(10));
CREATE TABLE
Miguel=> insert into xa values('a ','b ', 'c ');
INSERT 0 1
Miguel=> select * from xa;
a | b | c
----+----+------------
a | b | c
(1 row)
Miguel=> select a||b||c||'.' from xa;
?column?
----------
a b c.
(1 row)
Miguel=> update xa set c='X ';
UPDATE 1
Miguel=> select a||b||c||'.' from xa;
?column?
----------
a b X.
(1 row)
Miguel=> select * from xa where c='X';
a | b | c
----+----+------------
a | b | X
(1 row)
No sé si es un error de postgres, pero en todo caso me parece
"peligroso" confiar en que siempre funcione así. Mejor usa trim() como
te han dicho otros compañeros
--
Miguel Rodríguez Penabad
From: | Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy> |
---|---|
To: | jcb <jcb(at)greccosoft(dot)es> |
Cc: | Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Una de comparaciones |
Date: | 2008-01-31 10:27:36 |
Message-ID: | 47A1A298.8040006@ort.edu.uy |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
jcb wrote:
> hola, tengo un problema con los espacios finales de un campo en una
> comparación
> supongamos un campo de una tabla cualquiera con un campo codigo
> char(14)
>
> imaginemos que codigo dentro de la tabla tiene los valores 'AA' y 'BB'
>
> select * from tabla where codigo = 'AA'
>
> Estas select encuentra datos pero esta que sigue no
>
>
> select * from tabla where codigo = 'AA '
>
> resumiendo ¿hay algun parametro o algo parecido que haga que select
> 'A'='A ' devuelva true ?
>
> Gracias
>
>
>
>
> --
> TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podr� leerlo
>
Hola, lo mas sano es que hagas :
trim antes de guardarlo en la base ó
de no ser posible a la consulta deverias ponerle
trim(codigo) =trim('AA ') ó
update <tabla> set codigo=trim(codigo) y luego solo le
pones trim el parametro de la consulta codigo=trim('AA ')
Saludos Fernando