目前我有一个 SQL 查询,它选择一些列,然后执行 ORDER_BY ID。
很简单。输出即 92, 101, 105, 200, 1234
问题是,我试图在其中使用它的程序将只接受字母数字顺序的输入。这意味着我需要它是 101、105、1234、200、92。
如何修改 SQL 查询以按字母数字顺序排列数字?
目前我有一个 SQL 查询,它选择一些列,然后执行 ORDER_BY ID。
很简单。输出即 92, 101, 105, 200, 1234
问题是,我试图在其中使用它的程序将只接受字母数字顺序的输入。这意味着我需要它是 101、105、1234、200、92。
如何修改 SQL 查询以按字母数字顺序排列数字?
一种选择是将列转换为VARCHAR
然后排序
SELECT OrderID
FROM dbo.FooTable
ORDER BY CAST(OrderID AS VARCHAR(255))
您可以通过将数字转换为字符串来做到这一点:
order by cast(col as varchar(255))
例如。
您应该能够为您的 ID 列重新转换数据类型:
order by cast(ID as varchar(10))
这应该适用于大多数系统