今天有朋友问到,数据中,有些包含好几个'.',我想查询只包括一个'.’的语句,该怎么写
如果是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) |