【发布时间】:2023-03-26 01:09:01
【问题描述】:
SELECT dbo.base_project.id as ID,
dbo.base_project.name as Name,
dbo.base_project.status
FROM dbo.base_project
ORDER BY
Case When IsNumeric(dbo.base_project.name) = 1
then Right(Replicate('0',21) + dbo.base_project.name, 20)
When IsNumeric(dbo.base_project.name) = 0
then Left(dbo.base_project.name + Replicate('',21), 20)
Else dbo.base_project.name End
我可以先按数字排序,然后按字母数字排序。我需要反向排序,我需要先按字母数字排序,然后按数字排序
示例:
1,
3,
13036,
101-2011-009X2,
20-100281-01,
ELO-001,
ELO001B,
ELO002B
【问题讨论】:
-
你的意思是在同一个领域吗?示例数据是您在被排序的列中的数据吗?您应该使用您正在处理的查询和架构以及您尝试实现的结果来更新问题。
-
@尼克。我更新了问题
-
提供更多信息,例如查询和架构
-
@马德里。因此,您目前按以下顺序获取名称:1、3、13036、101-2011-009X2、20-100281-01、ELO-001、ELO001B、ELO002B,但您希望它们按以下顺序排列:ELO-001、ELO001B、 ELO002B, 1, 3, 13036, 101-2011-009X2, 20-100281-01?
-
我错过了输入,这是所需的顺序:101-2011-009X2、20-100281-01、ELO-001、ELO001B、ELO002B、1、3、13036?
标签: sql sorting alphanumeric