有字符转'123edfg' 如何转换为 数值 123注意123的长度不确定可能是'123456eeee'转换为 '123456'

解决方案 »

  1.   

    SELECT translate('12345eeeff', 'abcdefg', ' ') FROM dual
      

  2.   

    SELECT translate('123456我们很好', translate('123456我们很好', '1234567890',  ' '), ' ') FROM dual
      

  3.   

    to  taber(李沉舟)
       SELECT translate('123456我们很好', translate('123456我们很好', '1234567890',  ' '), ' ') FROM dual好办法但是效率是不是很低啊,就没有自动忽略字符串的函数???
      

  4.   

    如果你使用oracle10g,可以使用正则表达式:
    SELECT REGEXP_REPLACE ('123456我们很好',  '[^\\u4E00-\\u9FA5]', '') AS RX_REPLACE FROM dual
      

  5.   

    SELECT REGEXP_REPLACE ('AA我们123456aa我们很好',  '[^\\u4E00-\\u9FA5]|[A-Z]', '') AS RX_REPLACE FROM dual
      

  6.   

    translate函數是個很好的函數,效率應該不會低,至於正則表達式,我還不太會,向樓上學習!
      

  7.   

    看来oracle这方面还真是有点弱
      

  8.   

    看来oracle这方面还真是有点弱
     
    -------------------------------oracle 在这方面弱,那其他数据库在这个问题的处理上比oracle要好吗,至少oracel在这方面已经为用户想到了,所以在10g引入了正则表达式,不要指望什么问题都交给数据库来处理,这样无疑会增加数据库的负担
      

  9.   

    to duanzilin(寻) 自我感觉SQLServer 在这方面旧很好,当然我还不知道SQLServer是否支持正则
      

  10.   

    sqlserver在like 语句中可以指定最简单的正则表达式,仅此而已.oralce 10g已经支持全套的正则表达.