From: | Ludwig Lim <lud_nowhere_man(at)yahoo(dot)com> |
---|---|
To: | Frank Joerdens <frank(at)joerdens(dot)de> |
Cc: | PostgreSQL Mailing List <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: to_char and '=' weirdness |
Date: | 2002-08-08 11:48:24 |
Message-ID: | 20020808114824.4497.qmail@web40018.mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
--- Frank Joerdens <frank(at)joerdens(dot)de> wrote:
> German area codes from the former east all have a
> leading zero. As I
> store area codes as integers, I use to_char to find
> those with a leading
> zero, as in
>
> select * from adressen where to_char(plz, '00000')
> like '%04109%';
>
> (this would be Leipzig)
>
> What I don't understand is why something like
>
> C
>
> will yield 0 rows. If I do
>
> archi=# select to_char(plz, '00000') from adressen
> where
> archi-# to_char(plz, '00000') like '%04109%';
>
> I get:
>
> to_char
> ---------
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> 04109
> (15 rows)
>
> (i.e. my database contains 15 addresses from
> Leipzig)
>
> which would appear to indicate that to_char actually
> yields the string
> '04109'. Why doesn't the '=' operator work then?
I tried running a test sql statement
select(length(to_char(99,'00000')))
It return six.
I think that postgreSQL put a leading blank to
indicate that it is a positive number (not sure, just
my opinion)
try using :
select to_char(plz,'00000')
from andresses
where trim(to_char(plz,'00000'))='04109'
ludwig
__________________________________________________
Do You Yahoo!?
HotJobs - Search Thousands of New Jobs
http://www.hotjobs.com
From | Date | Subject | |
---|---|---|---|
Next Message | Karel Zak | 2002-08-08 12:11:55 | Re: to_char and '=' weirdness |
Previous Message | Frank Joerdens | 2002-08-08 11:33:00 | to_char and '=' weirdness |