How to order by 5, 501, 50101, 6, 601, 60101, etc?
Question
I've got a list of ledger account numbers. These numbers go like this:
- 5 (main account, #5)
- 501 (sub account of main account 5, #01)
- 50101 (sub account of this account, #01)
- etc.
So if I have a list and want to order this by account number, then I'd like to create this order:
- 5
- 501
- 50101
- 50102
- 50103
- 6
- 601
- 60101
- 60102
- 60103
etc.
However, any ORDER BY will give me:
- 5
- 6
- 501
- 601
etc.
So what is the proper way of working with this kind of numbering? I imagine I can get another column for ordering, but I really prefer to use the account numbers as IDs that I use for ordering, as not to make things too complicated.
Solution
Convert it to CHAR
first:
ORDER BY CAST( AccounNumber AS CHAR )
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange