Sql Server按Nvarchar字段排序

时间:2017-08-03 05:28:01

标签: sql-server sql-order-by nvarchar

我正在尝试使用Order By来排序这些数据,但Order by无法正常工作

这是我的代码:

SELECT (SELECT LEFT(SUBSTRING(description, PATINDEX('%[0-9.-]%', description), 8000),
       PATINDEX('%[^0-9.-]%', SUBSTRING(description, PATINDEX('%[0-9.-]%', description), 8000) + 'X') -1)) as x      
FROM dbo.fn_BMS_PPA() 
WHERE ppayear = 2017 and actualrootppaid = 112905 
and actualmotherppaid != 0 and withchildppa = 0
ORDER BY x

输出为:

1.1.1
1.1.10
1.1.11
1.1.2
1.1.3
.....

我想要的是:

1.1.1
1.1.2
1.1.3
1.1.10
1.1.11
.....

请注意,有时它会是1.11.1.1.1

1 个答案:

答案 0 :(得分:0)

这篇文章可以帮助你http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=130084 基本上你是在排序之前进行的。