2010-02-03 46 views
1

我正在使用oracle 10.我需要根據兩個數字字符串字段對結果集進行排序。 一個排序標準字段保存這樣的數據: FIELD1:sql order by numeric string

FO-100001001001 
FO-100001002001 
FO-100001003001 
SQ-200001003001 
FC-102001003001 

其他:

FIELD2: 
000203 
000567 
349990 

我需要兩個標準結合起來,第一個標準採取優先級,因此需要一個上升訂購。

我該如何寫這個sql?

回答

6

由於數字是零填充,你可以簡單地比較它們作爲字符串:

SELECT ... 
FROM ... 
ORDER BY field1 ASC, field2 ASC 

或者,如果你想忽略field1前綴:我假設由

SELECT ..., SUBSTR(field1, 3) AS stripped_field1 
FROM ... 
ORDER BY stripped_field1 ASC, field2 ASC 
0

「數字字符串」,你的意思是「varchar」,並且這個字母數字排序適用於你(如果格式是固定的並且你有前導零)。

select * from table order by field1, field2;