Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: Order By Character Column
Try this. It's also kludgy but at least its a bit of a smaller kludg.
SQL> select case
2 when ascii(a) < 65 then lpad(to_number(a),8)
3 else a
4 end
5 from sort_test
6 order by 1;
CASEWHEN
1 7 11 20
6 rows selected.
(Mark, Your create table statement doesn't have (a number) does it?)
chaim
-----Original Message-----
From: Bobak, Mark [mailto:Mark.Bobak_at_il.proquest.com]
Sent: Wednesday, October 27, 2004 12:44 PM
To: keith_at_etix.com; oracle-l_at_freelists.org
Subject: RE: Order By Character Column
Hmm, it's a little kludgy, but I don't see a more straightforward = approach.
Try this:
create table sort_test(a number);
insert into sort_Test values('B'); insert into sort_Test values('A'); insert into sort_Test values('20'); insert into sort_Test values('11'); insert into sort_Test values('7'); insert into sort_Test values('1');
ret_val:=3D 1;
else
ret_val:=3D 0;
end if;
return ret_val;
end;
/
select * from sort_test order by =
decode(is_number(a),1,to_number(a),999999),a;
But, I'd be interested in a more elegant solution, if someone has got = one.
-Mark
> -----Original Message-----
> From: oracle-l-bounce_at_freelists.org
> [mailto:oracle-l-bounce_at_freelists.org]On Behalf Of Keith M Cutler
> Sent: Wednesday, October 27, 2004 11:31 AM
> To: oracle-l_at_freelists.org
> Subject: Order By Character Column
>=20 >=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20
>=20 >=20 >=20
-- http://www.freelists.org/webpage/oracle-l -- http://www.freelists.org/webpage/oracle-lReceived on Wed Oct 27 2004 - 15:33:01 CDT
![]() |
![]() |