У меня есть столбец DOOR, который является VARCHAR2 в таблице АДРЕС. Я хочу отсортировать колонку DOOR.Сортировка столбца varchar как целочисленное значение в запросе Oracle
DOOR содержит только две цифры и не -
знака
В настоящее время, когда я использовать запрос
select sname, door, zip from address a order by door
я получаю следующий результат:
a
b
1
10
11
2
3
31
Но я хочу, чтобы результат смотреть например:
a
b
1
2
3
10
11
31
Я попытался преобразовать Doot в числовое значение с помощью to_number
в
select sname, to_number(door) dnr, zip from address a order by dnr
, но он дает мне ошибку ORA-01722
.
Создание собственной PL функции/SQL не будет очень эффективным и есть некоторые дополнительные вещи, которые вы добавили, которые вам не нужно. Вы также можете использовать коды ASCII для его улучшения; он будет таким же, но цифры будут удалены, например: http://www.sqlfiddle.com/#!4/0d064/1. Кроме того, что произойдет, если значение C? – Ben
yes correct Я предположил только 2 значения, но если мы вернем значение ascii, скажем, для a вернем 97, и в столбце 97,98,99 есть значения, то он будет находиться между этими записями. – swapy