2013-04-18 5 views
-1

Проблема: я не могу получить последний код. Мне нужно это для создания следующего.Oracle: максимальное значение column alphanumeric

Пример:

Last: 
D11.0602.166 

Next: 
D11.0603.166 

Я пробовал:

MAX 
TRANSLATE 
CONVERT 
MID 
VAL 
+0

Какая у вас проблема? Функция 'max()' должна делать то, что вы хотите. –

+0

Gordon's correct: 'MAX' должен найти самое последнее. Вы спрашиваете больше о том, что делать с значением MAX, как только вы его найдете? Если да, можете ли вы опубликовать описание своей схемы нумерации? –

ответ

1

То, что вы есть "умный ключ" - один атрибут, содержащий три элемента. Смарт-ключи тупые, потому что они боль в шее для работы.

Таким образом, правильным решением будет разделить этот атрибут на три отдельных атрибута и вместо этого сделать его составным.

В то же время вы могли бы использовать reguklar выражения плавник D В самое высокое значение средней составляющей ...

select max(regexp_replace(dumb_key 
       , '([A-Z][0-9]{2})\.([0-9]{4})\..([0-9]{3})' 
       , '\2')) 
from your_table 
/

Без сомнения, есть всякие другие сложности вы не объяснили, что означает это, вероятно, не является полным решением. Но он должен быть стартером на десять.

Смежные вопросы