在oracle中用plsql语句
问题:我想取前几个字符,比如说是:有张A表里,有个列是B,在B列中有以下几种内容:‘qwe123’‘qwert123’‘qw123’'sdgfsd123'
现在我想把‘**123’中的**列出来,但是不能用substr()函数因为位数不定,怎么实现啊??
我是这么想的,能不能从后向前取?或者是只取字母不取数字。怎么实现啊?
如果在加上‘qwers12335’这样的内容,又该如何做?

解决方案 »

  1.   

    where 字段名 like ‘%123%’
      

  2.   

    按你的意思理解,不是把中间的123删了就行了么, 这样前后的都列出来了?select replace('qwers12335', '123', '') from dual;
      

  3.   

    substr(字段名,1,instr(字段名,123’,1,1)-1)
      

  4.   

    恩,对哦~
    那如果要取出123前面的字段,怎么取呢?like只能列出*123*的字段
      

  5.   

    select substr(字段名,1,instr(字段名,'123’,1,1)-1) from 表名