SQL Server MSSQL用于按字符串排序- a1、a10、a2、a3等,而不是a1、a2、a3、a10

eblbsuwk  于 2023-01-12  发布在  其他
关注(0)|答案(1)|浏览(169)

当我使用MSSQL查询对名称进行排序时...
查询:从数据中选择名称。测试按名称升序排序
我得到a1 a10 a2 a3而不是a1 a2 a3 a10
有人知道需要对a1,a2,a3,a10的特定顺序进行哪些查询更改吗

46qrfjad

46qrfjad1#

你可以尝试下面的代码作为查询调整的一部分。从字符串中分割数字是实现你的结果的基本步骤。

Declare @Sampletable as Table (Col1 varchar(5))

insert into @Sampletable
(Col1)
values ('a1'),('a10'),('a2'),('a3')

;With Cte
as
(
select Col1,Cast( SUBSTRING(Col1, 2, len(Col1)) as int) as Rnk
from @Sampletable
)
Select Col1 from Cte
order by Rnk asc

相关问题