按字母顺序的SQL订单号

时间:2013-06-03 21:53:42

标签: sql sql-order-by

目前,我有一个SQL查询,可以选择一些列,然后执行ORDER_BY ID。

足够简单。输出是92,101,105,200,1234

问题是,我尝试使用它的程序只接受字母数字顺序的输入。这意味着我需要101,105,1234,200,92。

如何修改SQL查询以按字母数字顺序排序数字?

3 个答案:

答案 0 :(得分:5)

一种选择是将列转换为VARCHAR,然后对该

进行排序
SELECT OrderID
FROM dbo.FooTable
ORDER BY CAST(OrderID AS VARCHAR(255)) 

答案 1 :(得分:2)

您可以通过将数字转换为字符串来完成此操作:

order by cast(col as varchar(255))

例如。

答案 2 :(得分:0)

您应该能够重新投射ID列的数据类型:

order by cast(ID as varchar(10))

这适用于大多数系统