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
我在按 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