Skip to content
Advertisement

Sql Server query varchar data sort like int

I have one table like

CREATE TABLE table_name
(
P_Id int,
amount varchar(50)
)

Data Like

Id amount
----------
1 2340
2 4568
3 10000

Now I want to sort table by amount but one problem is amount is varchar so it sort table like this

Id amount
----------
3 10000
1 2340
2 4568

but i want result like this

Id amount
----------
3 10000
2 4568
1 2340

what should i do ?

Advertisement

Answer

Cast amount column into Numeric in ORDER BY clause while selecting:

SELECT * FROM MyTable
ORDER BY CAST(amount AS Numeric(10,0)) DESC

Result:

Id amount
3 10000
2 4568
1 2340

See this SQLFiddle

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement