怎么过滤不是这样的  265-025/631-171/3-3-2 数据格式是这样的 整数-整数/整数-整数/整数-整数-整数

解决方案 »

  1.   

    使用正则表达式罢。SELECT * FROM 表名
    WHERE NOT regexp_like(列名, '[[:digit:]]{3}-[[:digit:]]{3}/[[:digit:]]{3}-[[:digit:]]{3}/[:digit:]-[:digit:]-[:digit:]')
      

  2.   

    正则呀 兄弟
    SQL> create table test(col varchar2(50));表已创建。SQL> insert into test values('265-025/631-171/3-3-2');已创建 1 行。SQL> select * from test;COL
    --------------------------------------------------
    265-025/631-171/3-3-2SQL> ed
    已写入 file afiedt.buf  1  select * from test
      2* WHERE regexp_like(col,'([0-9]+)-([0-9]+)/([0-9]+)-([0-9]+)/([0-9]+)-([0-9]
    )-([0-9]+)')
    SQL> /COL
    --------------------------------------------------
    265-025/631-171/3-3-2SQL>
      

  3.   


    主要查询字段为 bh 是 nvarchar2 类型的265-025/631-171/3-3-2 像这样的字段是正确的 包括 265-025/631-171/03-03-02查询结果就是正确以外的的字段,因为不正确的情况太多,只能把正确的查询条件取反。