用 instr 和 substr 函数处理得到 你需要作比较的数据,然后

解决方案 »

  1.   

    用instr 函数找出 第几段也就是第几个点的位置,然后截取第几段的值,比如 截取第3段的值:
    select substr('1.2.3.4',instr('1.2.3.4','.',1,2) + 1,instr('1.2.3.4','.',1,3) - instr('1.2.3.4','.',1,2) - 1) from dual
    然后你可以得到这4段的值分别是什么,然后你就可以比较了
      

  2.   

    还可以在外面再套一个to_number函数,把得到的值转成整形的
      

  3.   

    to_number(regexp_replace('1.123.0.12','([[:digit:]]+).([[:digit:]]+).([[:digit:]]+).([[:digit:]]+)','\1'))
    \1匹配第一个版本号,\2 \3 \4对应第2 3 4 个
      

  4.   

    使用regexp_substr截取更简洁一些吧
    to_number(regexp_substr('1.123.0.12','[0-9]+',1,1))