有个字段,是受理单号(数字),但是有些前面有两个字母,有些后面有两个字母,我想要过滤掉后面有字母。
LS12345
12341
23415
34144AA
12341FJ结果是:
LS12345
12341
23415

解决方案 »

  1.   

    select XXX
      from tablename
     where ltrim(substr(XXX, lengthb(XXX) - 2, 2),'1234567890') is not null;
      

  2.   

    实测数据:CREATE TABLE T114
    (
        ID VARCHAR2(20),
        F1 VARCHAR2(20)
    );INSERT INTO T114 VALUES('01', 'LS12345');
    INSERT INTO T114 VALUES('02', '12341');
    INSERT INTO T114 VALUES('03', '23415');
    INSERT INTO T114 VALUES('04', '34144AA');
    INSERT INTO T114 VALUES('05', '12341FJ');
    实测结果:
      

  3.   

    我第一想到的就是正则
    如下:SQL> ed
    已写入 file afiedt.buf  1  CREATE TABLE test(
      2     col VARCHAR2(10)
      3* )
    SQL> /表已创建。SQL> @c:\sql.sql;已创建 1 行。
    已创建 1 行。
    已创建 1 行。
    已创建 1 行。
    已创建 1 行。SQL> select * from test;COL
    ----------
    LS12345
    12341
    23415
    34144AA
    12341FJSQL> ed
    已写入 file afiedt.buf  1  SELECT * FROM test
      2* WHERE regexp_like(col,'[^[:alpha:]]$')
    SQL> /COL
    ----------
    LS12345
    12341
    23415