Re: [SQL] ORDER BY is case insensitive

2010-06-23 Thread Jasen Betts
On 2010-06-22, Bryan White  wrote:
> I was suprised to find out that ORDER BY is case insensitive.  Is
> there a way to do a case sensitive ORDER BY clause?

use bytea instead of a text type.

> This transcript demonstrates what I am seeing:
>
> bryan=# select * from t order by f;
>  f
> ---
>  a
>  b
>  B
>  c
> (4 rows)

 try this:

 select * from t order by replace(f,e'\\', e'')::bytea
 
you may want to index on  replace(f,e'\\', e'')::bytea

 

>
> bryan=# \q
> ~  $ psql -l
>  List of databases
>   Name   |  Owner   | Encoding |  Collation  |Ctype|
> Access privileges
> -+--+--+-+-+---
>  bryan   | bryan| UTF8 | en_US.UTF-8 | en_US.UTF-8 |
>  postgres| postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
>  template0   | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | 
> =c/postgres
>:
> postgres=CTc/postgres
>  template1   | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | 
> =c/postgres
>:
> postgres=CTc/postgres
> (4 rows)
>
>
>
> -- 
> Bryan White
>



-- 
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql


Re: [SQL] ORDER BY is case insensitive

2010-06-23 Thread silly sad

On 06/23/10 17:45, Jasen Betts wrote:

On 2010-06-22, Bryan White  wrote:

I was suprised to find out that ORDER BY is case insensitive.  Is
there a way to do a case sensitive ORDER BY clause?


use bytea instead of a text type.

  try this:

  select * from t order by replace(f,e'\\', e'')::bytea

you may want to index on  replace(f,e'\\', e'')::bytea


certainly wrong way.
keyword is "multibyte chars".

as he asked about case sensitivity, i presume he still want to preserve 
alphabet order -- u propose to cancel alphabet order at all.


--
Sent via pgsql-sql mailing list (pgsql-sql@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-sql