繁体   English   中英

sql用数字和单词对列进行排序

[英]sql sorting a column with numbers and words

我在将一列数字和单词排序为nvarchar类型的特定升序时遇到问题。

当我运行这个查询

select GradedDescriptions from cards order by GradedDescriptions asc

我明白了

10
5
8
8.5
Authentic
Authentic
Black 10

但我想要的结果是

Authentic
5
8
8.5
10
Black 10

有没有办法把 Authentic 放在数字前面,Black 10 放在最后?

也许像这样

Declare @YourTable Table ([GradedDescriptions] varchar(50))
Insert Into @YourTable Values 
 ('10')
,('5')
,('8')
,('8.5')
,('Authentic')
,('Black 10')
 
Select * from @YourTable 
Order by try_convert(money,right([GradedDescriptions],3))
        ,[GradedDescriptions]

结果

GradedDescriptions
Authentic
5
8
8.5
10
Black 10

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM