【发布时间】:2021-10-23 05:35:41
【问题描述】:
我有这张桌子:
IF OBJECT_ID('tempdb..#Test') IS NOT NULL
DROP TABLE #Test;
CREATE TABLE #Test (Col VARCHAR(100));
INSERT INTO #Test
VALUES ('1'), ('2'), ('10'), ('A'), ('B'), ('C1'), ('1D'), ('10HH')
SELECT * FROM #Test
我想先按数值排序,然后按字母排序。
我想要的结果是:
1
1D
2
10
10HH
A
B
C1
假设条目的结构是其中之一(当然没有破折号)
number
number-string
string-number
string
如果有类似string-number-string的条目,假设它是string-number
【问题讨论】:
-
'C1'怎么样,它是如何工作的?'C2'会大于'c10'吗? -
是的,C2 大于 C10,但那部分并不重要。无论哪种方式都有效。最重要的是开始整数
-
...和
C4C和C41C -
如果你有
A2B和A10B20,它们会如何排序? -
@AaronBertrand,那部分无关紧要。理想情况下,C4C 在 C41C 之前。不过没关系
标签: sql sql-server tsql