Oracle 常用函数(Decode,sign,lpad)

---DECODE()函数,它将输入数值与函数中的参数列表相比较,根据输入值返回一个对应值。函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式。当然,如果未能与任何一个实参序偶匹配成功,则函数也有默认的返回值。

语法结构如下:

decode (expression, search_1, result_1)
decode (expression, search_1, result_1, search_2, result_2)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n)
decode (expression, search_1, result_1, default)
decode (expression, search_1, result_1, search_2, result_2, default)
decode (expression, search_1, result_1, search_2, result_2, ...., search_n, result_n, default)

比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。

 

---Decode与sign函数联用比较大小:

语法:select decode(sign(arg1-arg2),-1, arg1, arg2) from dual; --get arg1与arg2的较小值  

实例:select decode(sign(3-5),1 ,3, 5) from dual  

注:sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

---补充:有学生成绩表student,现在要用decode函数实现以下几个功能:成绩>85,显示优秀;>70显示良好;>60及格;否则是不及格。
假设student的编号为id,成绩为score,那么:
select id, decode(sign(score-85),1,'优秀',0,'优秀',-1,
decode(sign(score-70),1,'良好',0,'良好',-1,
decode(sign(score-60),1,'及格',0,'及格',-1,'不及格')))
from student;
 
---lpad(String ,最后字符串长度>0,填充的内容)
例如:
select lpad('test',10) from dual; 
将返回“    test”
 
lpad('tech', 2); 将返回'te'
 
select lpad('test',10,'ee') from dual;
结果将返回eeeeeetest
posted @   F领主  阅读(347)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示