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
select * from adressen where to_char(plz, '00000') = '04109';
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?
Regards, Frank