操作环境:操作系统为Windows10-64位
操作版本:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Developer Version 12.0.7.1837 (64bit) 01.226959
目录
- $函数
- 一、nvl与coalesce
- 1、nvl(eExpression1, eExpression2)
- 2、coalesce(expression_1, expression_2, ...,expression_n)
- 二、greast与least
- 1、greatest(expr_1, expr_2, ...expr_n)
- 2、least(value1, value2, value3, ...)
- 三、replace、translate与decode
- 1、replace(char, search_string [, replace_string])
- 2、translate(string,from_str,to_str)
- 3、decode(expr1,expr2,expr3,[expr4])
- 四、sign与trunc
- 1、sign(number)
- 2、trunc(number, [ decimal_places ] )
- $用法
- 一、拼接列:||
- 二、条件逻辑:case when
- 三、限制返回的行数:rownum
$函数
一、nvl与coalesce
1、nvl(eExpression1, eExpression2)
从两个表达式返回一个非 null 值。
如果 eExpression1 的计算结果为 null 值,则 nvl( ) 返回 eExpression2。如果
eExpression1 的计算结果不是 null 值,则返回 eExpression1。eExpression1 和eExpression2 可以是任意一种数据类型。如果 eExpression1 与 eExpression2 的结果皆为null 值,则 nvl( ) 返回 null。
2、coalesce(expression_1, expression_2, …,expression_n)
返回第一个非null表达式的类型。
coalesce是一个函数, (expression_1, expression_2, …,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用coalesce在于大部分包含空值的表达式最终将返回空值。
二、greast与least
1、greatest(expr_1, expr_2, …expr_n)
求多列的最大值。
greatest(expr_1, expr_2, …expr_n)函数从表达式(列、常量、计算值)expr_1, expr_2, … expr_n等中找出最大的数返回。在比较时,OracIe会自动按表达式的数据类型进行比较,以expr_1的数据类型为准。
当value值列表中有一个为null,则返回null值。
2、least(value1, value2, value3, …)
返回value值列表中最小的一个值。
当value值列表中有一个为null,则返回null值。
三、replace、translate与decode
1、replace(char, search_string [, replace_string])
用另外一个值来替代串中的某个值。
可以用一个匹配数字来替代字母的每一次出现。
如果没有指定replace_string 变量的值,那么当发现search_string 变量的值时,就将其删除。输入可以为任何字符数据类型——CHAR、VARCHAR2、NCHAR、NVARCHAR2、CLOB或NCLOB。
2、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。
3、decode(expr1,expr2,expr3,[expr4])
如果expr1 = expr2,decode函数返回expr3表达式的值。
如果expr1 != expr2,decode函数返回expr4表达式的值,如果expr4未指定,则返回null。
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)
decode函数比较表达式和搜索字,如果匹配,返回结果;如果不匹配,返回default值;如果未定义default值,则返回空值。
四、sign与trunc
1、sign(number)
返回一个数字的正负标志。
如果number < 0,sign返回-1;
如果number = 0,sign返回0;
如果number > 0,sign返回1。
2、trunc(number, [ decimal_places ] )
number是要截取的数字。
decimal_places是要保留的小数位.。这个参数必须是个整数,如果此参数缺省,默认保留0位小数。
如果decimal_places 大于number 本身的小数位数,返回原数字不会加0。
如果decimal_places 为负数,那么将向左去除指定的位数。
trunc(125.815) =》 125
trunc(125.815, 0) =》 125
trunc(125.815, 1) =》 125.8
trunc(125.815, 2) =》 125.81
trunc(125.81, 3) =》 125.81
trunc(-125.815, 2) =》 -125.81
trunc(125.815, -1) =》 120
trunc(125.815, -2) =》 100
trunc(125.81, -3) =》 0
$用法
一、拼接列:||
select ename || '的工作是' || job as msg
from emp
where deptno = 10;
二、条件逻辑:case when
select ename,sal,
case
when sal <= 2000 then '过低'
when sal >= 4000 then '过高'
else 'OK'
end as status
from emp
where deptno = 10;
三、限制返回的行数:rownum
select * from emp where rownum <= 2;
免责声明:
1.编写此文是为了更好地学习Oracle的使用,如果损害了有关人的利益,请联系删除;
2.如果文中描述欠妥,请在评论中进行指正;
3.文字编写不易,若感觉有用,点赞收藏关注会让博主很开心哦;
4.此外,本文支持任何形式的转载,转载请注明出处,非常感谢!!!
本文源自:https://blog.csdn.net/testleaf/article/details/118630663
博客园cnblogs同号。