【发布时间】:2019-09-02 05:07:43
【问题描述】:
选择时是否有一个简单的技巧可以将排序顺序更改为“第一个字符值升序,然后数值升序”?
SELECT mycol
FROM mytable
ORDER BY mycol
结果:
1C
8Q
9G
AR
BZ
IT
使用 DESC:
SELECT mycol
FROM mytable
ORDER BY mycol DESC
结果:
IT
BZ
AR
9G
8Q
1C
想要的结果:
AR
BZ
IT
1C
8Q
9G
【问题讨论】:
-
当你到达
'ZZ'(实际上是'99')会发生什么? -
您的列是否只有 2 个字符?
-
ZZ 之后所有以数值开头的行都应该列出来,比如:1A, 1B,...等等
-
@LuisCazares 在当前的挑战中是的。我不确定将来是否需要这种排序顺序来处理更多字符的列。
-
这种逻辑会比较混乱,所以很难回答。哪个先出现:
11或2A? (因为 11 在数值上大于 2...)
标签: sql sql-server tsql sorting sql-order-by