我知道这个问题已经以各种形式提出,但我的要求恰好有点不同。
假设我有一个包含如下数据的表:
ID NAME VALUE
-----------------------------
1 ABC-2-2 X
2 PQRS-1-3 Y
3 ABC-3-2 Z
4 PQRS-1-4 A
5 PQRS-3-4 B
6 MNO-2-1 C
7 AAA-1 D
8 BBB-2 E
9 CCC-3 F
现在,我期望的输出应该是这样的:
ID NAME VALUE
-----------------------------
7 AAA-1 D
2 PQRS-1-3 Y
4 PQRS-1-4 A
8 BBB-2 E
6 MNO-2-1 C
1 ABC-2-2 X
9 CCC-3 F
3 ABC-3-2 Z
5 PQRS-3-4 B
请注意,这不是直接的字母数字排序。相反,第一个“-”之前的值被忽略,字段按名称中第一个“-”之后的内容排序。
我对 PL/SQL 不是很熟悉,如果能提供任何帮助,我将不胜感激。
谢谢。
PS:请注意,这应该适用于 Oracle 和 MySQL。