查询条件

wch_212 2012-02-22 03:28:52
怎么过滤不是这样的 265-025/631-171/3-3-2 数据

格式是这样的 整数-整数/整数-整数/整数-整数-整数
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wch_212 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luiseradl 的回复:]

使用正则表达式罢。
SQL code

SELECT * FROM 表名
WHERE NOT regexp_like(列名, '[[:digit:]]{3}-[[:digit:]]{3}/[[:digit:]]{3}-[[:digit:]]{3}/[:digit:]-[:digit:]-[:digit:]')
[/Quote]

晕,为什么我的不好使那。
vanjayhsu 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 luiseradl 的回复:]
使用正则表达式罢。

SQL code

SELECT * FROM 表名
WHERE NOT regexp_like(列名, '[[:digit:]]{3}-[[:digit:]]{3}/[[:digit:]]{3}-[[:digit:]]{3}/[:digit:]-[:digit:]-[:digit:]')
[/Quote]

如果是说BH里面的“整数-整数/整数-整数/整数-整数-整数”是正确的,不满足这个条件的就是不正确的,使用上面的语句应该可以解决问题了。
wch_212 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 vanjayhsu 的回复:]

建议楼主详细描述你的问题,表结构,查询语句,表中的数据,希望得到的查询结果,这样大家才知道你的问题到底是什么
[/Quote]

主要查询字段为 bh 是 nvarchar2 类型的

265-025/631-171/3-3-2 像这样的字段是正确的 包括 265-025/631-171/03-03-02

查询结果就是正确以外的的字段,因为不正确的情况太多,只能把正确的查询条件取反。
  • 打赏
  • 举报
回复
LZ的意思是要去0还是?

265-25/631-171/3-3-2 ?
mingchaoyan 2012-02-22
  • 打赏
  • 举报
回复
正则呀 兄弟
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-2

SQL> 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-2

SQL>

我心飞翔 2012-02-22
  • 打赏
  • 举报
回复
使用正则表达式罢。

SELECT * FROM 表名
WHERE NOT regexp_like(列名, '[[:digit:]]{3}-[[:digit:]]{3}/[[:digit:]]{3}-[[:digit:]]{3}/[:digit:]-[:digit:]-[:digit:]')
vanjayhsu 2012-02-22
  • 打赏
  • 举报
回复
建议楼主详细描述你的问题,表结构,查询语句,表中的数据,希望得到的查询结果,这样大家才知道你的问题到底是什么

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧