Выбрать по окончанию строки - PullRequest
0 голосов
/ 03 сентября 2010

В моей БД я храню различные номера версий, например:

OBJNAME
Fix_6.0.0a.1
Fix_6.0.0a.2

Я бы хотел отсортировать их не по последнему элементу версии (число за последним . символом. Как мне написать такой оператор SQL?

Я думаю, это что-то вроде:

  SELECT SUBSTR(INSTR(OBJNAME, ".", -1)) as LAST_VERSION, OBJNAME 
    FROM MY_TABLE 
ORDER BY LAST_VERSION

Но каков точный синтаксис?

Ответы [ 2 ]

1 голос
/ 03 сентября 2010

Правильная версия

select TO_NUMBER(SUBSTR(OBJNAME,INSTR(OBJNAME,'.',-1)+1,LENGTH(OBJNAME))) as LAST_VERSION, OBJNAME from MY_TABLE order by LAST_VERSION
0 голосов
/ 03 сентября 2010

Я не знаю, какое sql-программное обеспечение вы используете, но вы должны взглянуть на параметры substr и instr.в вашем случае вы передаете 3 параметра в instr и 1 параметр в substr.но substr обычно требует больше.вставьте некоторые пробелы, чтобы получить обзор вашего утверждения, особенно для substr .... as LAST_VERSION.тогда ты увидишь.неверный счетчик параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...