Oracle用的常用函式

2021-06-13 14:45:02 字數 1836 閱讀 1223

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...