T SQL - 层次结构的特殊顺序

时间:2015-01-27 09:48:36

标签: sql sql-server

我的选择顺序存在一些问题,并且不知道如何修复它。

层次结构应如下所示:

10
100
1001
1003
1004
1007
10010
20
210
2101
220
22100
22101

但是,当我通过这种层次结构执行通常的订单时,我会这样做:

10
20
100
210
220
1001
...

有没有人知道如何才能获得正确的订单?

3 个答案:

答案 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)