威尼斯娱乐场官方Oracle中的translate函数和replace函数的用法详解

第一个例子中由于’fgsgswsgs’中没有与’fk’匹配的字符串,

select substr('天气真好!',1,3),
       substr('我一点都不开心',3,5) 
       from dual
SQL select REPLACE('fgsgswsgs', 'fk' ,'j') 返回值 from dual; 返回值 --------- fgsgswsgs SQL select REPLACE('fgsgswsgs', 'sg' ,'eeerrrttt') 返回值 from dual; 返回值 ----------------------- fgeeerrrtttsweeerrrttts

decode(字段,条件1,值1,条件2,值2)
针对同一字段有不同值的时候,可以用decode 来简化SQL语句

select translate('itmyhome#163%com', '#%', '@.') from dual;select replace('itmyhome#163%com', '#%', '@.') from dual;---------itmyhome@163.comitmyhome#163%com
select abs(-1.3),ceil(-1.3),ceil(1.3),
       floor(-2.6),floor(2.6),
       round(-888.689),round(-888.689,2),round(-889.689,-2),
       trunc(-888.689),trunc(-888.689,2),trunc(-888.689,-2)
       from dual

总结

nvl(a,b) 函数nvl
判断a表达式,如果a为空则返回b,通常用来判断某个字段的值是否为空,用途十分广泛的。
如果为空,则传回b的值。当然我们一般是让b=0,你也可以赋其它的值1,2,3,4等等。

只不过replace针对的是字符串,而translate针对的是单个字符。

select translate('abcdefga','abc','wo') 返回值 from dual;
--返回值
wodefgw

而replace却没有实现此效果,是因为没有找到#%整体的组合

ltrim(s1,set):从左端开始逐一取得字串s1左端包含的set中的任何字符,
当遇到不是set中的字符是,则结束并返回剩余结果

REPLACE(char, search_string,replacement_string)

字符函数:

translate返回expr,其中from_string中的每个字符的所有出现都被to_string中的相应字符替换。expr中不在from_string中的字符不会被替换。如果expr是一个字符串,那么你必须把它放在单引号中。
from_string的参数可以包含比to_string更多的字符。在这种情况下,from_string末尾的多余字符在to_string中没有对应的字符。如果这些额外的字符出现在字符中,那么它们将从返回值中移除。

数字函数:

SELECT TRANSLATE('itmyhome#163.com$is my* email', '#$ *', '@__') from dual----------itmyhome@163.com_is_my_email

查询会用到的函数:
INTERSECT:取两个结果的交集
MINUS:获取两个结果集的差集,返回在第一个结果集中存在但是第二个结果集中不存在的记录
UNION ALL:获取两个结果的并集,但不会去掉合并结果中重复的记录
UNION:获取两个结果的并集,且去掉合并结果中重复的记录
WITH 表名 as (SQL子查询语句):可以将(SQL子查询语句复用)
START WITH … CONNECT BY PRIOR … 实现Oracle层次查询
EXISTS
相关子查询是指需要应用主查询列表中的子查询语句,需要通过谓词EXISTS来实现,当使用EXSISTS谓词时,如果子查询存在返回结果则条件返回TRUE,否则返回FALSE
coalesce(expr1[,expr2]…):返回运算式中第一个not null运算式的结果

第二个例子中将’fgsgswsgs’中的字符串’sg’全部转换为’eeerrrttt’。

SELECT trim('j' from 'jhsony') from dual
#hsony

以下语句将一句话转换为具有下划线分隔的字符串。from_string包含四个字符:井号,美元符号,空格,星号。to_string只包含一个@符号和两个下划线。
这使得from_string中的第四个字符没有相应的替换,所以星号从返回的值中删除。

select coalesce('','','','aa','bb') from dual
---------
aa

将char中的字符串search_string全部转换为字符串replacement_string。

SELECT ltrim('天气真好','天') from dual
#气真好

replace函数

substr(s1,m,n):取得字串s1从m开始,长度为n的子串,m>0表示从头开始搜索,m<0表示从尾开始

以上所述是小编给大家介绍的Oracle中的translate函数和replace函数的用法详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

威尼斯娱乐场官方 1

语法:

分析:该语句要将’abcdefga’中的’abc’转换为’wo’,
由于’abc’中’a’对应’wo’中的’w’,
故将’abcdefga’中的’a’全部转换成’w’;
而’abc’中’b’对应’wo’中的’o’,
故将’abcdefga’中的’b’全部转换成’o’;
‘abc’中的’c’在’wo’中没有与之对应的字符,
故将’abcdefga’中的’c’全部删除;
简单说来,就是将from中的字符转换为to中与之位置对应的字符,
若to中找不到与之对应的字符,返回值中的该字符将会被删除。
在实际的业务中,可以用来删除一些异常数据,
比如表a中的一个字段t_no表示电话号码,
而电话号码本身应该是一个由数字组成的字符串,
为了删除那些含有非数字的异常数据,
就用到了translate函数:

例子:

translate函数
语法:TRANSLATE(char, from, to)
威尼斯娱乐场官方,用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。