1. 程式人生 > >SQL函式的使用【Oracle】

SQL函式的使用【Oracle】

         ‘userenv’----不可改變

  1. 字元函式
    -- 字元函式
    -- 1. lower(char)
    -- 2. upper(char)
    -- 3. length(char)
    -- 4. substr(char,m,n),m:起始位置,n:個數
    
    -- 以首字母大寫的方式顯示所有員工的姓名。
    select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)),sal from emp;
    
    -- 5. replace(char,search_string,replace_string)
    -- 顯示所有員工的姓名,用'我是A'替換所有的'A'
    
    -- 6. instr(char1,char2,[,n[,m]])取子串在字串的位置
  2. 數學函式
    -- 數學函式
    -- 1. round(n,[m]),該函式用於執行四捨五入,如果省掉m,則四捨五入到整數,
    -- 如果m是正數,則四捨五入到小數點的m位後
    -- 如果m是負數,則四捨五入到小數點的m位前
    -- 2. trunc(n,[m]),擷取數字
    -- 3. mod(m,n)
    -- 4. floor(n),向下取整
    -- 5. ceil(n),向上取整
    -- 在做Oracle測試,可以使用dual表。
  3. 日期函式
    -- 日期函式
    -- 預設情況下日期格式是dd-mon-yy即12-7月 -78
    -- sysdate,返回系統時間
    
    -- 查詢已經入職8個月的以上員工
    select * from emp where sysdate>add_months(hiredate,8);
    
    -- 顯示滿10年服務年限的員工
    select * from emp where sysdate>=add_months(hiredate,12*10);
    
    -- 對於每個員工,顯示其加入公司的天數。中文字元用雙引號
    select ename,trunc(sysdate-hiredate) "入職天數" from emp;
    
    -- 找出各月倒數第3天受僱的所有員工
    select ename,hiredate from emp where last_day(hiredate)-2=hiredate;
  4. 轉換函式
    -- 轉換函式
    -- to_char
    -- 日期可否顯示時/分/秒
    select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;
    
    -- 薪水是否可以顯示指定的貨幣符號
    select ename,to_char(sal,'L9999.99') sal from emp;
    
    -- 顯示1980年入職的所有員工
    select * from emp where to_char(hiredate,'yyyy')=1980;
    
    -- 顯示所有12月份入職的員工
    select * from emp where to_char(hiredate,'mm')=12;
    
    -- to_date
    -- 將字串轉化成date型別的資料
    -- 按照中國人的年月日新增日期

  5. 系統函式

          'userenv' 不可改變

-- 系統函式
select sys_context('userenv','db_name') from dual;