Sql Server 查询varchar 数据排序类似于int [英] Sql Server query varchar data sort like int

查看:46
本文介绍了Sql Server 查询varchar 数据排序类似于int的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一张像

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

数据喜欢

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

现在我想按数量对表格进行排序,但一个问题是数量是 varchar 所以它像这样对表格进行排序

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

但我想要这样的结果

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

我该怎么办?

推荐答案

ORDER BY子句中选择时将数量列转换为数值:

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

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

结果:

<头>
ID金额
310000
24568
12340

参见这个SQLFiddle

这篇关于Sql Server 查询varchar 数据排序类似于int的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆