我的选择顺序存在一些问题,并且不知道如何修复它。
层次结构应如下所示:
10
100
1001
1003
1004
1007
10010
20
210
2101
220
22100
22101
但是,当我通过这种层次结构执行通常的订单时,我会这样做:
10
20
100
210
220
1001
...
有没有人知道如何才能获得正确的订单?
答案 0 :(得分:1)
您的列是数字数据类型。将它转换为像这样的字符串
select * from your_table
order by cast(your_column as varchar(20))
答案 1 :(得分:1)
我从@juegend那里得到了一些答案 他写了,但你必须转向一些VARCHAR
SELECT *
FROM Table
ORDER BY CAST(ID AS VARCHAR)
答案 2 :(得分:1)
好的,明白了
SELECT *
FROM Table
ORDER BY RIGHT('00000000' + CAST(ID AS VARCHAR),8)