用法:返回将出现在from中的每个字符替换为to中的相应字符以后的字符串。
若from比to字符串长,那么在from中比to中多出的字符将会被删除。
三个参数中有一个是空,返回值也将是空值。
举例:SQL> select translate('abcdefga','abc','wo') 返回值 from dual;
返回值
-------
wodefgw
语法:REPLACE(char, search_string,replacement_string)
用法:将char中的字符串search_string全部转换为字符串replacement_string。
用法:nvl2(a,b,c) ,如果a不为null 则返回b,如果a为null则返回c;
<>不能比较空
4.decode
类似于if(条件 1 ,‘A’,2,'B') 1为A 2 为B
5.sign 正数 为 1 , 0 为0 , 负数 为 -1
position:查找的开始位置
示例一:
完成:当A > B,为 YES;当A<B,为NO, 当 A=0 是为YES
主要用于 A 和 B 数据比较之后 希望显示的结果,在decode 里面还可以在次嵌套decode 做多次判断
decode(sign(nvl(decode(A,0,'',A,A), B) - B),
1,'YES',
0,' YES ',
-1 ,'NO';
示例二:
2.默认显示ALL,选择Y或N 选择显示YES或NO
主要用于比较结果的查询 A 和 B 大于或 小于 显示哪些数据
这样可以减少每次条件的查询代码,减少代码量
当然你也可以用 IF ELSEIF ELSEFI ....... IF 一直循环下去
IF p_over = 'Y' THEN
v_over := 'Y';
ELSif p_over='N' then
v_over := 'N';
END IF;
AND (v_over IS NULL or decode(sign(nvl(A, B) - B),
1, --NO
'N',
0, --NO
'N',
-1, --YES
'Y') = v_over)