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'
enddecode只能在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裡面的所有值拼接在一起,成為乙個行的形式
13.找到包含最大值和最小值的記錄
select client_short,actual_bal
from (
select client_short,
actual_bal,
max(actual_bal) over() max_bal,
min(actual_bal) over() min_bal
from fsd.rb_acct) x
where actual_bal in (max_bal,min_bal)
14.rank() / dense_rank() over(partiiton by .. order by ..)
rank() 是跳躍排序,有兩個第一,接下來是第三
dense_rank()是連續排序,有兩個第一,接下來是第二
partition by是按哪個字段分組,order by 是按哪個字段排序
15.
Oracle常用函式
一 row number over 資料甲 1 select column name column name,data type,2 row number over partition by column name order by column name row num 3 from test c...
Oracle常用函式
數學函式 1.絕對值 o select abs 1 value from dual 2.取整 大 o select ceil 1.001 value from dual 3.取整 小 o select floor 1.001 value from dual 4.取整 擷取 o select trun...
oracle常用函式
1.concat c1,c2均為字串,函式將c2連線到c1的後面,如果c1為null,將返回c2.如果c2為null,則返回c1,如果c1 c2都為null,則返回null。他和操作符 返回的結果相同 select concat slobo svoboda username from dualuse...