oracle強化練習之單行函式

2021-06-26 06:56:06 字數 1994 閱讀 4800

1.      顯示dname和loc中間用-分隔

select dname ||』-『|| loc from dept;

2.      將部門名稱左填充為10位

select lpad( dname,10) from dept;

3.      將員工名字的『s』,替換為『s』

select replace(ename,』s』,』s』) from emp;

4.      求員工名字的前三位

select  substr(ename,1,3) from emp;

5.      查詢員工名字中『s』第一次出現的位置

select instr(ename,』s』,1,1) from emp;

6.      查詢員工名字中第二次出現『t』的位置

select instr(ename,』t』,1,2) from emp;

7.      查詢員工名字的長度

select length(ename) from emp;

8.      顯示一年前的今天日期和一年以後今天的日期

select add_months(sysdate,-12),add_months(sysdate,12) from emp;

9.      顯示本月第三天的日期

select sysdate-(to_char(sysdate,』dd』))+3 from dual;

10.   顯示今天到'2012-12-12'相隔的月數

select months_between(sysdate,』12-12月-2012』) from dual;

11.   顯示員工工資的貨幣表示形式,比如rmb5,000

select to_char(sal,』$9,999』) from emp;

12.   顯示2023年10月1日的字串格式,最後顯示結果為1949

年10月1日

select to_char(to_date('1949-10-1','yyyy-mm-dd'),'fmyyyy"年"mm"月"dd"日"') from dual;

2023年10月1日

13.   按照如下要求顯示資料:

sal=800  顯示低工資  

sal=3000  正常工資

sal=5000  高工資

select sal,decode(sal,800,'低工資',3000,'正常工資',5000,'高工資') from emp;

14.   顯示以下欄位及字串的連線:"the job id for ",姓名(大寫)," is " ,工作(小寫)  如:the job id for allen is salesman

select 'the job id for'||ename||' is '||job from emp;

15.   顯示出姓名中最後乙個字母為"n"的員工姓名 (使用substr或者instr)

select ename from emp where substr(ename,-1)=』n』;

16.   查詢參加工作時間在每月15日之後的員工姓名,參加工作時間

select ename,hiredate from emp whereto_char(hiredate,』dd』)>15;

17.   用"*"的個數表示員工的工資中包含多少"千",如3500,顯示'***',5600,顯示'*****'

select ename,sal,lpad(『*』,sal/1000,』*』) from emp;

18. 顯示員工名,參加工作時間,參加工作6個月後的第乙個周一

select ename,hiredate,next_day(add_months(hiredate,6),2) from emp;

19. 顯示員工姓名,月薪,年薪(13個月的月薪+10000元獎金+comm)要求別名為annual_salary,要求所有人的年薪都顯示出來

select ename,sal,(sal*13+10000+nvl(comm,0)) 「annual_salary」fromemp;

oracle之單行函式

單行函式 字元函式 lower x 將x中的每個單詞都轉換成小寫 upper x 將x中的每個單詞都轉換成大寫 initcap x 將x中的每個單詞的首字母轉換成大寫 concat x,y 用於將y新增到x之後,與 功能一樣 substr x,start length 用於從x中取得從start位置...

oracle單行函式練習題

1.顯示系統時間 注 日期 時間 select to char sysdate,yyyy mm dd hh mm ss from dual 2.查詢員工號,姓名,工資,以及工資提高百分之20 後的結果 new salary select empno,ename,sal,sal 1.2 as new ...

Oracle基礎 單行函式練習(一)

1.查詢部門30中的所有員工資訊 select from emp where deptno 30 2.列出所有辦事員 clerk 的姓名,編號和部門編號 select ename,empno,deptno from emp where job clerk 3.找出獎金高於薪金的員工資訊 select...