Oracle中函数的使⽤
1.decode ()
例⼦:它的写法如下decode('a','b','c','d'),其中a,b,c,d可以是其他函数也可以是数值,依据我们⾃⼰的情况来使⽤,它的含义是如果a=b,那么结果显⽰c,否则d。
oracle decimal类型翻译成我们更通俗易懂的话就是:
if(sex=1)
then return '男'
else
return ‘⼥’
decode(sex,1,'男','⼥‘’)
⽤法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else),表⽰如果value 等于if1时,DECODE函数的结果返回then1,...,如果不等于任何⼀个if值,则返回else。初看⼀下,DECODE 只能做等于测试,但
刚才也看到了,我们通过⼀些函数或计算替代value,是可以使DECODE函数具备⼤于、⼩于或等于功能。
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
该函数的含义如下:
IF 条件=值1 THEN
RETURN(翻译值1)
ELSIF 条件=值2 THEN
RETURN(翻译值2)
......
ELSIF 条件=值n THEN
RETURN(翻译值n)
ELSE
RETURN(缺省值)
END IF
2.case ()
⽤法:case when 'a' then 'b' else 'c' end
例⼦1:case when sex=1
then '男'
else '⼥'
end
例⼦2:
CASE WHEN sex=1
THEN (case when age>=18
then '成年男⼈'
else ‘未成年男孩’
end)
ELSE (case when age>=18
then '成年⼥⼈'
else '未成年⼥孩'
⽤法:拼接字符串
例⼦:concat(a,’%’)给a加上%号
连接多个字符串⽤||
select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;
select Category || ' - ' || Title as 图书类别 from tbl_books;
格式如下:ROUND(number[,decimals])
其中:number 待做截取处理的数值
decimals 指明需保留⼩数点后⾯的位数。可选项,忽略它则截去所有的⼩数部分,并四舍五⼊。如果为负数则表⽰从⼩数点开始左边的位数,相应整数数字⽤0填充,⼩数被去掉。对截取的数字要四舍五⼊。
例⼦:select title,concat(round((retail-cost)/cost*100),'%') from Tbl_Books;
ceil(n) 取⼤于等于数值n的最⼩整数;
例⼦:select title,ceil(cost) from Tbl_Books;
floor(n)取⼩于等于数值n的最⼤整数;
6.trunc函数处理数字
trunc函数返回处理后的数值,其⼯作机制与ROUND函数极为类似,只是该函数不对指定⼩数前或后的部分做相应舍⼊选择处理,⽽统统截去。
其具体的语法格式如下
TRUNC(number[,decimals])
其中:
number 待做截取处理的数值
decimals 指明需保留⼩数点后⾯的位数。可选项,忽略它则截去所有的⼩数部分。
例⼦:select title,cost,retail,trunc(cost),trunc(retail) from Tbl_Books;
7.lpad( string, padded_length, [ pad_string ] )
string
准备被填充的字符串;
padded_length
填充之后的字符串长度,也就是该函数返回的字符串长度,如果这个数量⽐原字符串的长度要短,lpad 函数将会把字符串截取成从左到右的n个字符;
pad_string
填充字符串,是个可选参数,这个字符串是要粘贴到string的左边,如果这个参数未写,lpad函数将会在string的左边粘贴空格。
例⼦:select lpad(Customer_name || '/' || address || '/' || city,80) as 顾客信息 from Tbl_Customer;
8.substr(字符串,截取开始位置,截取长度) //返回截取的字;
例⼦:select substr(Name,0,4) as 出版社,substr(Contact,0,1) as 姓 from Tbl_Publisher;
9.replace()
含义为:替换字符串
replace(原字段,“原字段旧内容“,“原字段新内容“,)
select customer_name, replace(city,'上海','ShangHai') as city from Tbl_Customer;
10.NULLIF ( expression1 , expression2 )
、列名、函数、或、按以及的任意组合。
返回类型与第⼀个expression1 相同。
输出结果:
如果两个表达式不相等,NULLIF 返回第⼀个expression1 的值。
如果两个表达式相等,NULLIF 返回NULL。
、列名、函数、或、按以及的任意组合。
返回类型与第⼀个expression1 相同。
输出结果:
如果两个表达式不相等,NULLIF 返回第⼀个expression1 的值。
如果两个表达式相等,NULLIF 返回NULL。
例⼦:select Customer_name ,nullif(nullif(City,'北京'),'上海') from tbl_customer;
11.Posstr(a,b)返回b在a中的位置
例⼦:select posstr(title,'⼦') from Tbl_Books;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论