我正在使用oracle 10.我需要根据两个数字字符串字段对结果集进行排序。 一个排序标准字段包含如下数据: FIELD1:
FO-100001001001
FO-100001002001
FO-100001003001
SQ-200001003001
FC-102001003001
另一个:
FIELD2:
000203
000567
349990
我需要结合这两个标准,第一个标准优先,结果需要升序。
我该如何编写这个sql?
答案 0 :(得分: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
答案 1 :(得分:0)
我假设通过“数字字符串”,您的意思是“varchar”,并且字母数字排序适用于您(如果格式是固定的并且您具有前导零,则应该这样做。)
select * from table order by field1, field2;