下面图片中有三种“加瓦”,java,Java,JAVA
regexp_replace(1,2,3,4,5,6)
语法说明:1:字段 2:替换的字段 3:替换成什么 4:起始位置(默认从1开始) 5:替换的次数(0是无限次) 6:不区分大小写
【补充:】用regexp_replace来判断oracle中的某列为数字的:
以下是百度知道的答案:是否数字-百度知道
自己的延伸:判断入库的时候,插入的手机号码(11位)
方式①:
方式②:来自百度文库的答案某列全是数字-百度文库
translate函数的第三个参数是一个空格,不是'', 因为translate的第三个参数如果为空的话,那么永远返回'',这样的就不
能达到过滤纯数字的目的。这样把所有的数字都转化为空格,如果全部是由数 构成,那么一旦trim后自然是空,实现
了上述目标。当然如果想排除空项的话,可以这样写:
select * from table where trim(translate(nvl(column,'x'),'0123456789',' ')) is NULL;--x 表示任何'0-9'以外的字符。
两种方式得到的结果一模一样,哼哼,涨姿势了~
函数nvl说明:nvl函数-百度知道
函数translate说明:translate函数-博客园
一、语法:
TRANSLATE(string,from_str,to_str)
二、目的
返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string。TRANSLATE 是 REPLACE 所提供的功能的一个超集。如果 from_str 比 to_str 长,那么在 from_str 中而不在 to_str 中的额外字符将从 string 中被删除,因为它们没有相应的替换字符。to_str 不能为空。Oracle 将空字符串解释为 NULL,并且如果TRANSLATE 中的任何参数为NULL,那么结果也是 NULL。
三、允许使用的位置
过程性语句和SQL语句。
四、示例
Sql代码
SELECT TRANSLATE('abcdefghij','abcdef','123456') FROM dual;
TRANSLATE (
--------------
123456ghij
SELECT TRANSLATE('abcdefghij','abcdefghij','123456') FROM dual;
TRANSL
----------
123456
---------------------------------------------------------华丽的分界符---------------------------------------------------------
regexp_like(1,2,3)
语法说明:1:字段 2:查询的关键字 3:不区分大小写(哈哈,以后就可以不用 (upper()))
联系客服