實際上是返回第一個數字的位置 的函數估計你要自己寫個函數出來基本思想:
for i:=0 to LENGTH(varField) 
begin
 if substr(varField,i,1) in('1','0',.....) then
  return i;
end

解决方案 »

  1.   

    select address, replace (address,'12')
    from qilin1
    where address like '%12%'
    union
    select address, replace (address,'11')
    from qilin1
    where address like '%11%'
      

  2.   

    使用translate函数替换掉所有的数字为特定字符后就可以解决了for example:
    SQL> select translate('北大街11号','1234567890','x') from dual;TRANSLATE('北大街11号','123456
    ------------------------------
    北大街xx号SQL> select instr(translate('北大街11号','1234567890','x'),'x') from dual;INSTR(TRANSLATE('北大街11号','
    ------------------------------
                                 4SQL> select substr('北大街11号',1,instr(translate('北大街11号','1234567890','x'),'x')-1) from dual;SUBSTR('北大街11号',1,INSTR(TR
    ------------------------------
    北大街
      

  3.   

    在oracle10g 中可以用到正则表达式更简单.一个sql 语句可以搞定.SQL> select substr(name ,1,regexp_instr(name,'[[:digit:]]')-1) as sub_d_name fro
    m yang;SUB_D_NAME
    ------------------------------
    北大街
    北南街
    东北大学
    吉林大学
    东北林业大学
    北街已选择6行。
      

  4.   

    用translate函数也是一个SQL语句就就可以的呀,我觉得还是translate容易理解些.楼上的做法受教了,谢谢:)