упорядочить по числовой строке - PullRequest
1 голос
/ 03 февраля 2010

Я использую оракул 10. Мне нужно отсортировать мой набор результатов по двум числовым строковым полям. одно поле критерия сортировки содержит такие данные: FIELD1:

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

другой:

FIELD2:
000203
000567
349990

Мне нужно объединить два критерия, первый критерий имеет приоритет, результат должен быть в порядке возрастания.

Как мне написать этот sql?

Ответы [ 2 ]

6 голосов
/ 03 февраля 2010

Поскольку числа дополняются нулями, вы можете просто сравнить их как строки:

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 голосов
/ 03 февраля 2010

Я предполагаю, что под "числовой строкой" вы подразумеваете "varchar", и что алфавитно-цифровая сортировка работает для вас (что должно быть, если формат фиксирован и у вас есть начальные нули).

select * from table order by field1, field2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...