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

T SQL-层次结构的特殊顺序,sql,sql-server,Sql,Sql Server,我的选择顺序有一些问题,不知道如何解决 层次结构应如下所示: 10 100 1001 1003 1004 1007 10010 20 210 2101 220 22100 22101 但当我按照这个层次结构进行常规排序时,我会得到这样的结果: 10 20 100 210 220 1001 ... 有人知道我如何才能得到正确的顺序吗?您的列是数字数据类型。将其转换为如下所示的字符串 select * from your_table order by cast(your_column as va

我的选择顺序有一些问题,不知道如何解决

层次结构应如下所示:

10
100
1001
1003
1004
1007
10010
20
210
2101
220
22100
22101
但当我按照这个层次结构进行常规排序时,我会得到这样的结果:

10
20
100
210
220
1001
...

有人知道我如何才能得到正确的顺序吗?

您的列是数字数据类型。将其转换为如下所示的字符串

select * from your_table
order by cast(your_column as varchar(20))

您的列是数字数据类型。将其转换为如下所示的字符串

select * from your_table
order by cast(your_column as varchar(20))

您的列是数字数据类型。将其转换为如下所示的字符串

select * from your_table
order by cast(your_column as varchar(20))

您的列是数字数据类型。将其转换为如下所示的字符串

select * from your_table
order by cast(your_column as varchar(20))

我有点偷了@juegend的答案 他是个作家,但你必须投靠一些瓦查尔

SELECT * 
FROM Table 
ORDER BY CAST(ID AS VARCHAR)

我有点偷了@juegend的答案 他是个作家,但你必须投靠一些瓦查尔

SELECT * 
FROM Table 
ORDER BY CAST(ID AS VARCHAR)

我有点偷了@juegend的答案 他是个作家,但你必须投靠一些瓦查尔

SELECT * 
FROM Table 
ORDER BY CAST(ID AS VARCHAR)

我有点偷了@juegend的答案 他是个作家,但你必须投靠一些瓦查尔

SELECT * 
FROM Table 
ORDER BY CAST(ID AS VARCHAR)
好的,明白了

SELECT * 
FROM Table 
ORDER BY RIGHT('00000000' + CAST(ID AS VARCHAR),8)
好的,明白了

SELECT * 
FROM Table 
ORDER BY RIGHT('00000000' + CAST(ID AS VARCHAR),8)
好的,明白了

SELECT * 
FROM Table 
ORDER BY RIGHT('00000000' + CAST(ID AS VARCHAR),8)
好的,明白了

SELECT * 
FROM Table 
ORDER BY RIGHT('00000000' + CAST(ID AS VARCHAR),8)

列数据类型是什么?列数据类型是什么?列数据类型是什么?列数据类型是什么?不,它们都是整型的。这就是为什么顺序是10,20,100而不是10,100,1001,(…),20,210的原因。现在修复了不,它们都是整型的。这就是为什么顺序是10,20,100,而不是10,100,1001,(…),20,210的原因,相反。现在修复了不,它们都是整型的。这就是为什么顺序是10,20,100,而不是10,100,1001,(…),20,210的原因,相反。现在修复了不,它们都是整型的。这就是为什么顺序是10,20,100,而不是10,100,1001,(…),20,210的原因,相反。现在修复了看起来更好,但仍然不是解决方案。例如,我在1003、1004之前得到10010,等等。我想我需要前导零,这看起来更好,但仍然不是解决方案。例如,我在1003、1004之前得到10010,等等。我想我需要前导零,这看起来更好,但仍然不是解决方案。例如,我在1003、1004之前得到10010,等等。我想我需要前导零,这看起来更好,但仍然不是解决方案。比如,我在1003、1004之前得到10010,等等,我想我需要前导零