Hi folks,What about
I've got a table holding loco numbers and an id which references the locos table. How can I sort this table, so that numeric values appear first in numerical order followed by alpha in alpha order.?
select lnid,lnumber,lncurrent from
(select *, case when lnumber ~ '^[0-9]+' then lnumber::int else null end as number from lnumber)
order by number, lnumber
I hope, it helps...
Dima
nymr=# \d lnumbers Table "lnumbers" Column | Type | Modifiers -----------+-----------------------+----------- lnid | integer | not null lnumber | character varying(10) | not null lncurrent | boolean | Primary key: lnumbers_pkey Triggers: RI_ConstraintTrigger_7121182
nymr=# select * from lnumbers order by lnumber; lnid | lnumber | lncurrent ------+---------+----------- 26 | 08556 | t 13 | 08850 | f 2 | 2392 | f 15 | 24 061 | t 12 | 25 278 | f 1 | 29 | t 5 | 30926 | t 3 | 4277 | t 7 | 44767 | t 21 | 45157 | t 13 | 4518 | t 6 | 45212 | t 16 | 45337 | t 23 | 4771 | f 19 | 5 | t 24 | 55019 | t 27 | 59 | f 11 | 60007 | t 8 | 60532 | t 23 | 60800 | t 14 | 62005 | t 14 | 62012 | f 18 | 64360 | f 2 | 65894 | t 17 | 6619 | t 27 | 69023 | t 9 | 75014 | t 10 | 75029 | t 22 | 76079 | t 4 | 80135 | t 20 | 825 | t 18 | 901 | t 5 | 926 | f 26 | D3723 | f 15 | D5061 | t 12 | D7628 | t 25 | D9009 | t 24 | D9019 | f (38 rows)
nymr=#
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])