如何在 SQL Server 中进行字母数字排序,如下所示
1A1
1A2
1A3
1A10
1A14
1A15
1A16
1A141
1A149
1A150
2A1
3B1
4C3
4C4
7E1
9999A7777
我写了这样的代码
SELECT [failure_mode_code]
FROM dst.Failure_mode
ORDER BY
CAST(LEFT([failure_mode_code], PATINDEX('%[A-Z]%', [failure_mode_code] + 'X') - 1) AS INT),
SUBSTRING([failure_mode_code], PATINDEX('%[A-Z]%', [failure_mode_code] + 'X'), LEN([failure_mode_code])),
[failure_mode_code]
但我得到这个结果:
1A10
1A1
1A14
1A141
1A149
1A15
1A150
1A16
1A2
这里 1A2 应该在 1A1 之后,1A149 也在 1A15 之前
你能帮我排序吗?