Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2909356
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2014-04-02 21:09:11

今天有朋友问到,数据中,有些包含好几个'.',我想查询只包括一个'.’的语句,该怎么写

如果是11G的话,比较简单,直接用正则表达式regexp_count即可。

SQL> select name from t;

NAME
------------------------------
adafe.d22
dadfaf..e.d22
ddfa.4.d333

SQL> select name from t
  2  where  regexp_count(name,'\.')=1;

NAME
------------------------------
adafe.d22

如果是11G以下的版本,那么可以用instr的方式来实现。
只要从字符串的左边查询到的"."的位置和从右边查询到的"."的位置相等即可。

SQL> select name
  2  from t
  3  where instr(name,'.')=instr(name,'.',-1);

NAME
------------------------------
adafe.d22

SQL>

阅读(7968) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~