sql命令按数字字符串

时间:2010-02-03 05:02:51

标签: sql oracle hibernate

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

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

另一个:

FIELD2:
000203
000567
349990

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

我该如何编写这个sql?

2 个答案:

答案 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;