sql命令按数字字符串

Saw*_*yer 1 sql oracle hibernate

我正在使用oracle 10.我需要根据两个数字字符串字段对结果集进行排序.一个排序标准字段包含如下数据:FIELD1:

FO-100001001001 
FO-100001002001
FO-100001003001
SQ-200001003001
FC-102001003001
Run Code Online (Sandbox Code Playgroud)

另一个 :

FIELD2:
000203
000567
349990
Run Code Online (Sandbox Code Playgroud)

我需要结合这两个标准,第一个标准取优先级,结果需要升序.

我该如何编写这个sql?

Max*_*keh 6

由于数字是零填充的,您可以简单地将它们作为字符串进行比较:

SELECT ...
FROM ...
ORDER BY field1 ASC, field2 ASC
Run Code Online (Sandbox Code Playgroud)

或者,如果要忽略前缀field1:

SELECT ..., SUBSTR(field1, 3) AS stripped_field1 
FROM ...
ORDER BY stripped_field1 ASC, field2 ASC
Run Code Online (Sandbox Code Playgroud)