From: | Jeff Self <jself(at)greatbridge(dot)com> |
---|---|
To: | Jeff MacDonald <jeff(at)tht(dot)net> |
Cc: | <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: "correct" sorting. |
Date: | 2001-05-04 15:50:31 |
Message-ID: | Pine.LNX.4.33.0105041145110.8460-100000@jselfpc.us.greatbridge.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
You're trying to compare apples and oranges. Since the field is of type
text, it will sort by text. Therefore, the result will be 1 then 10 then
1a and so forth. It is sorting based on ASCII. The only way to get it to
sort in proper numerical order is to make the field a numeric field. But
of course you won't be able to use characters in that. Therefore, create a
second field called revision or whatever of text. Now you can sort
correctly with:
select * from foo order by var1,revision;
On Thu, 3 May 2001, Jeff
MacDonald wrote:
> Hi folks,
>
> say i have a text field with teh values
>
> 1,2,3,10,20,30,1a,1b,2a,2b
>
> and i want to sort it so i get,
>
> 1
> 1a
> 1b
> 2
> 2a
> 2b
> 3
> 10
> 20
> 30
>
> is there anyway to do that with postgresql ?
> below is what actually happens.
>
> jeff=> select * from foo order by var1;
> var1
> ------
> 1
> 10
> 1a
> 1b
> 2
> 20
> 2a
> 2b
> 3
> 30
> 3a
> 3b
> (12 rows)
>
--
Jeff Self
Information Specialist
Great Bridge, LLC
www.greatbridge.com | www.greatbridge.org
Norfolk, VA
(757)233-5570
jeff(dot)self(at)greatbridge(dot)com
From | Date | Subject | |
---|---|---|---|
Next Message | Martín Marqués | 2001-05-04 16:17:02 | Re: create table |
Previous Message | Vivek Khera | 2001-05-04 14:20:02 | Re: Dateadd |