根据字符串结尾选择

时间:2010-09-03 09:27:11

标签: sql oracle oracle11g

在我的数据库中,我存储了各种版本号,如下所示:

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 个答案:

答案 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。然后你会看到。错误的参数计数。