SQL函式的使用【Oracle】
阿新 • • 發佈:2019-01-04
‘userenv’----不可改變
- 字元函式
-- 字元函式 -- 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]])取子串在字串的位置
- 數學函式
-- 數學函式 -- 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表。
- 日期函式
-- 日期函式 -- 預設情況下日期格式是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;
- 轉換函式
-- 轉換函式 -- 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型別的資料 -- 按照中國人的年月日新增日期
- 系統函式
'userenv' 不可改變
-- 系統函式
select sys_context('userenv','db_name') from dual;