在我的数据库中,我存储了各种版本号,如下所示:
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
但是确切的语法是什么?
答案 0 :(得分:1)
正确的版本是
select TO_NUMBER(SUBSTR(OBJNAME,INSTR(OBJNAME,'.',-1)+1,LENGTH(OBJNAME))) as LAST_VERSION, OBJNAME from MY_TABLE order by LAST_VERSION
答案 1 :(得分:0)
我不知道您使用的是哪个sql-software,但是您应该查看substr和instr参数。在你的情况下,你传递3个参数到instr和1个参数在substr。但是substr通常需要更多。插入一些空格来概括你的语句,特别是对于substr ....作为LAST_VERSION。然后你会看到。错误的参数计数。