oracle 常用函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/luobida222/article/details/78537982

oracle 常用函数

1.decode和case when

decode (a,'1','aaa','2','bbb','ccc')

就是if 字段a = 1 then aaa

else if a=2 then bbb

else ccc

 case when a=1 then 'aaa'

when a='2' then 'bbb'

else 'ccc' 

end

decode只能在oracle里面用,mysql不行,sqlplus不行,case when是可以在别的数据库里面用的

decode只能做相等判断,case when 可以做大于小于大于等于什么的那种判断,还有is null,is not null

case when 用在存储过程里面的时候end后面要加上case,就是 end case

2.concat 和|| 

concat只能连接两个,||能连接好多

concat(a,b)

concat('a','b')

a||b||c||d

有case when在select里面的时候不能直接用||或者是concat,要做一个子查询把结果先查出来再拼接

3.instr

instr(a,b,c,d)

a是要查的,b是查什么,c是从第几位开始查,d是查到第几个的时候返回

4.replace

replace(x,old,new)

把x里面的old换成new

5.substr

substr(x,start,length)

截取x,从start开始截取length位

6.length

length(x)

返回x的长度

7.ltrim,rtrim,trim

ltrim(a,'a')

去掉a字段左边的a,如果有连续的a就全都去掉

rtrim(a,'a')

去掉a字段右边的a,如果有连续的a就全都去掉

trim('a' from a)

去掉两边的a,如果有连续的a就全都去掉,一般用来去掉空格写法是trim(a),a是字段名

以上三个只能去除单个字符,比如想去掉字段a里面的字符串abc是不可以的,但想去掉字段a里面连续的aaaaa是可以的

8.merge into

MERGE INTO ABCD T1

USING (SELECT A,B,C  FROM ABC WHERE D = '1' ) T2

ON (T1.A = T2.A)

WHEN MATCHED THEN 

UPDATE SET T1.B = T2.B;

WHEN NOT MATCHD THEN 

INSERT (A,B,C) VALUES (T1.A,T1.B,T1.C);

解释:on是两个表的关联条件,当满足on里面的条件时,执行update,不满足执行insert,inset里面的值要在using里面的select中查出来,否则提示字符无效

9.upper和lower

更改大小写

SELECT UPPER('AAAaaa') FROM DUAL;

会显示全是大写的A

SELECT LOWER('aaaAAA') FROM DUAL;

会显示全是小写的a

10.NVL

SELECT NVL(A,'000') FROM ABC

解释:当字段A里面有值就输出字段A本身的值,没有值时输出000

11.union 和union all

SELECT * FROM ABC UNION SELECT * FROM ABCD;

解释:将SELECT * FROM ABC 的结果和SELECT * FROM ABCD;的结果去重后拼接在一起输出

SELECT * FROM ABC UNION ALL SELECT * FROM ABCD;

解释:将SELECT * FROM ABC 的结果和SELECT * FROM ABCD;的结果直接拼接在一起输出

12.wm_concat

列转行函数

SELECT WM_CONCAT (D) FROM ABCD;

解释:将表abcd里面的字段d里面的所有值拼接在一起,成为一个行的形式


阅读更多

没有更多推荐了,返回首页