pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Ragnar <gnari@hive.is>
To: Joost Kraaijeveld <J.Kraaijeveld@Askesis.nl>
Cc: Pgsql-Sql <Pgsql-sql@postgresql.org>
Subject: Re: Why do I get these results?????
Date: Fri, 03 Mar 2006 09:51:17 +0000
Message-ID: <1141379477.18656.130.camel@localhost.localdomain> (raw)
In-Reply-To: <1141375840.4267.16.camel@localhost>
References: <1141375840.4267.16.camel@localhost>

On fös, 2006-03-03 at 09:50 +0100, Joost Kraaijeveld wrote:
> Hi,
> 
> Why do I get the following result from the query below? I expected that,
> given the fact that there are over 100 "Jansen" (but no "jansen") in
> "Nijmegen" the first record would definitively be people living in
> "Nijmegen". If I change the order to the order that is commented out,
> the query goes OK.
> 
> SELECT 
> addresses.zipcode, 
> addresses.city, 
> addresses.housenumber,
> addresses.housenumberdetails, 
> customers.lastname 
> FROM prototype.customers JOIN prototype.addresses ON
> customers.contactaddress = addresses.objectid
> WHERE
> TRIM(UPPER(customers.lastname)) >= TRIM(UPPER('Jansen'))
> AND
> TRIM(UPPER(addresses.city)) >= TRIM(UPPER('NIJMEGEN'))
> ORDER BY customers.lastname, addresses.city, addresses.zipcode
> --ORDER BY addresses.city, customers.lastname, addresses.zipcode
> limit 5
> 
> Result:
> 
> "3089TN";"ROTTERDAM";"5";"";"jansen"
> "5712XG";"SOMEREN";"13";"";"jansen"
> "6511PS";"NIJMEGEN";"23";"";"Jansen"
> "6523RE";"NIJMEGEN";"13";"";"Jansen"
> "6524NP";"NIJMEGEN";"37";"A";"Jansen"

What LOCALE are you using?
Looks like it either sorts lowercase before uppercase
or treats them as equivalent.


Why do you not provide us with a simple test case?
Why involve a join and irrelevant columns?

What does a simple test like this do for you?:

test=# create table t (c text, n text);
CREATE TABLE
test=# insert into t values ('ROTTERDAM','jansen');
INSERT 33566780 1
test=# insert into t values ('SOMEREN','jansen');
INSERT 33566781 1
test=# insert into t values ('NIJMEGEN','Jansen');
INSERT 33566782 1
test=# insert into t values ('NIJMEGEN','Jansen');
INSERT 33566783 1
test=# insert into t values ('NIJMEGEN','Jansen');
INSERT 33566784 1
test=# select * from t ORDER BY n,c;
     c     |   n
-----------+--------
 NIJMEGEN  | Jansen
 NIJMEGEN  | Jansen
 NIJMEGEN  | Jansen
 ROTTERDAM | jansen
 SOMEREN   | jansen
(5 rows)

(this in in C locale)

gnari





view thread (4+ messages)  latest in thread

Message-ID: <1141379477.18656.130.camel@localhost.localdomain>
Permalink:  ../1141379477.18656.130.camel@localhost.localdomain/
Also on:    postgresql.org/message-id/1141379477.18656.130.camel@localhost.localdomain

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: gnari@hive.is, J.Kraaijeveld@Askesis.nl
  Subject: Re: Why do I get these results?????
  In-Reply-To: <1141379477.18656.130.camel@localhost.localdomain>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox