1.字元函式
1. lower(argo) 將大寫字元轉換為小寫字元
2. upper(arg1) 將小寫字元轉化為大寫
3. initcap(arg1) 單詞首字母大寫
4. dsubstr(arg0, arg1) 將arg0中的字串從第arg1擷取到最後(擷取後的字元包括第arg1字元)
5. substr(a,b,c) 將a 中的字串從第b擷取,擷取長度為c
6. lpad(a,b,c) 在a字元中向左填充b c個長度
7 rpad(a,b,c) 在a字元中向右填充b c個長度
8. trim(a from b) 在a字串的兩端取出b字元
9. replace(a,b,c) 將a字串中的b替換成c
2. 數字函式
1. mod(a,b) a對b取莫
2. round(a,b) 注意:當b為正整數時則a保留兩位小數,如果大於小數個數則返回原來的數字
為o則返回整數,若b為負數則對小數前的正整數部分進行取捨。
3. trunc(a,b) 擷取,b為幾則儲存小數幾位,若為負數則擷取整數部分,從各位開始,擷取後補零
3. 日期函式
1. to_char(sysdate [,b]) 將時間轉換為字串,可以指定轉換後的格式
eg:select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual
2. systemstamp 顯示時間戳
3. sysdate-1 時間可以做加減這裡預設加的是一天
eg:select to_char(sysdate-1) from dual;
4. months_between(a,b) 計算兩個時間的差值
5. add_months(a,b) 在a日期上加上b個月
7. last_day(a); a時間所月的最後一天對應的日期
8. next_day(a,b)在a日期的下乙個b時間的日期
eg: select next_day(sysdate,'星期一') from dual
9. round(a,b) 在a日期的範圍內取b的大約值,
eg:select round(sysdate ,'year') from dual 結果01-1月 -13 ,b可取值:year、month.....
10. trunc(a,b) 在a日期中擷取b的範圍 b可取值year、month....
4. 轉換函式
1. to_char() 將其他型別轉換為字串
2. to_date() 將字串轉換為date型別:注意:必須符合oracle的date格式
5. 通用函式
1. nvl(a,b); 如果a為null則返回b,若不為null則返回a
2. nvl2(a,b,c) 如果a為null返回c,不為null返回b
3. nullif(a,b) 如果a=b則返回空,否則返回a
4. coalesce(a,b,c,d....) 從左到右返回字乙個不為null的值
5. wm_concat()行轉列
6. 條件表示式
1. case(expre)
eg: select ename,job,sal 漲前, case job when 'president' then sal+1000
when 'manager' then sal+800
else sal+400
end 漲後
from emp;
2. decode(a0
a,ca1,c1
a2, c2
d)from emp; 如果a0=a則翻譯c,如果a0=a1則返回c1,如果a0=a2則返回c2,如果都不等則返回d
Oracle 常用的函式
常用的偽列有rowid和rownum select rowid,orders.from orders orders表的結果 create table orders c1 number 5 not null,c10 number 20 not null,c20 varchar2 20 not null...
Oracle常用的函式
1 判斷表是否存在 create or replace function public f is table exist v table en name character varying 8000 char returns integer as i count int default 0 begi...
Oracle常用的函式
1 把date資料轉為特定輸出型的字串 2 處理數字型資料 9相當於萬用字元 最終值是 日期 月數量,資料型別也是date型。一般月數量為負數,舉個例子 從employ表查詢列出來公司就職時間超過24年的員工名單,但是表中只有就職起始日期,所以需要用到這個函式了。select name,startd...