一些oracle函式

2021-07-02 07:34:30 字數 2200 閱讀 2765

-- 使用case表示式直接在select語句中執行條件邏輯

select ename,sal,

case when sal <=2000 then 'underpaid'

when sal >=4000 then 'overpaid'

else 'ok'

end as status

from emp;

--coalesce函式用實際的值來替換空值

如:用0替換comm為null的值

select coalesce(comm,0) from emp;

--substr(string,start,length)

string - 指定的要擷取的字串

start - 必需,規定在字串的何處開始

正數 - 在字串的指定位置開始

負數 - 在從字串結尾的指定位置開始

0 - 在字串中的第乙個字元處開始

length - 可選,指定要擷取的字串長度,預設時返回字元表示式的值結束前的全部字元。

例如:select substr('abcdefg',3,4) from dual;結果是cdef

select substr('abcdefg',-3,4) from dual;結果efg

select substr('abcde',2),substr('abcde',-2),substr('abcde',2,3),substr('abcdewww',-7,3) from dual;

結果是bcde、de、bcd、bcd

--translate

translate函式用於逐字元地把乙個字串變換成另乙個,它通常有三個引數:要被轉換的字串,要轉換的字元列表、帶入字元的列表。

如:將字串abc123中的數字替換成#

select translate('abc123','0123456789','#########') from dual;結果為abc###

--replace

replace(string,search_set[,replace_set])

用途:該函式將字串中所有出現的search_set都替換成replace_set字串.可以使用該函將字串中所有出現的符號都替換成某個有效的名字.如果不指定replace_set,則將從字串string中刪除所有的搜尋字串search_set。

select replace('abc123','abc','abc') from dual;結果為abc123

select replace('abc123','abc') from dual;結果為123

-- 採用case表示式動態改變如何對結果排序

如:在emp表中如果job是saleman用comm排序否則用sal排序

select ename,

sal,

job,

comm,

case

when job='salesman'

then comm

else sal

end as ordered

from emp

order by 5;

--intersect 返回 兩個結果集的交集(即兩個查詢都返回的所有非重複值)。

union返回兩個結果集的並集。

語法:--在sql中'true or null'結果為true,'false or null'結果為null

如:select deptno from dept;

deptno

--------

1020

3040

select deptno from dept where deptno in (10,50,null);

deptno

--------

10select deptno from dept where deptno not in (10,50,null);

查詢結果返回0行

deptno

--------

instr函式在oracle/plsql中是返回要擷取的字串在源字串中的位置。

示例:

select instr('syranmo','s') from dual; -- 返回 1

select instr('syranmo','ra') from dual; -- 返回 3

select instr('syran mo','a',1,2) from dual; -- 返回 0

Oracle 一些實用的函式

最近在用oralce寫查詢 遇到了一些有用的函式 先總結些 再慢慢補充 1.sum over sum sal over partition by deptno order by ename 按部門 連續 求總和 sum sal over partition by deptno 按部門求總和 sum ...

oracle 一些常用的函式

select from emp where empno 7839 select sal from emp where empno 7839 字元函式 select length sal from emp select lower ename from emp select upper ename f...

oracle 一些常見函式操作

1 給出時間,如 2011 7 23 查詢星期幾 select to char to date 2011 7 23 yyyy mm dd day nls date language american from dual 結果 saturday select to char to date 2011 ...