그동안의 내용에 대한 예제 풀이
SELECT FIRST_NAME ||' ' || LAST_NAME AS "사원명", HIRE_DATE AS "입 사 일",
SALARY*12||'원' AS "연 봉", DEPARTMENT_ID AS "부서코드"
FROM HR.EMPLOYEES
WHERE DEPARTMENT_ID = 90;
출력결과
사원명 입 사 일 연 봉 부서코드
Steven King 03/06/17 288000원 90
Neena Kochhar 05/09/21 204000원 90
Lex De Haan 01/01/13 204000원 90
SELECT FIRST_NAME ||' ' || LAST_NAME AS "사원명", '$' || SALARY "월 급", DEPARTMENT_ID "부서코드"
FROM HR.EMPLOYEES
WHERE SALARY NOT BETWEEN 2500 AND 3000 AND DEPARTMENT_ID = 90;
출력결과
사원명 월 급 부서코드
Steven King $24000 90
Neena Kochhar $17000 90
Lex De Haan $17000 90
SALARY NOT BETWEEN 2500 AND 3000
SELECT DISTINCT JOB_ID
FROM HR.EMPLOYEES;
출력결과
JOB_ID
AC_ACCOUNT
AC_MGR
AD_ASST
AD_PRES
AD_VP
FI_ACCOUNT
FI_MGR
HR_REP
IT_PROG
MK_MAN
MK_REP
PR_REP
PU_CLERK
PU_MAN
SA_MAN
SA_REP
SH_CLERK
ST_CLERK
ST_MAN
SELECT LAST_NAME, JOB_ID, DEPARTMENT_ID
FROM HR.EMPLOYEES
WHERE JOB_ID LIKE '%MAN%';
출력결과
LAST_NAME JOB_ID DEPARTMENT_ID
Raphaely PU_MAN 30
Weiss ST_MAN 50
Fripp ST_MAN 50
Kaufling ST_MAN 50
Vollman ST_MAN 50
Mourgos ST_MAN 50
Russell SA_MAN 80
Partners SA_MAN 80
Errazuriz SA_MAN 80
Cambrault SA_MAN 80
Zlotkey SA_MAN 80
Hartstein MK_MAN 20
SELECT LAST_NAME AS "사원명", JOB_ID AS "업무ID", DEPARTMENT_ID AS "부서ID"
FROM HR.EMPLOYEES
WHERE JOB_ID IN ('IT_PROG','ST_MAN') OR JOB_ID = 'SA_REP';
출력결과
사원명 업무ID 부서ID
Hunold IT_PROG 60
Ernst IT_PROG 60
Austin IT_PROG 60
Pataballa IT_PROG 60
Lorentz IT_PROG 60
Weiss ST_MAN 50
Fripp ST_MAN 50
Kaufling ST_MAN 50
Vollman ST_MAN 50
Mourgos ST_MAN 50
Tucker SA_REP 80
Bernstein SA_REP 80
Hall SA_REP 80
Olsen SA_REP 80
Cambrault SA_REP 80
Tuvault SA_REP 80
King SA_REP 80
Sully SA_REP 80
McEwen SA_REP 80
Smith SA_REP 80
Doran SA_REP 80
Sewall SA_REP 80
Vishney SA_REP 80
Greene SA_REP 80
Marvins SA_REP 80
Lee SA_REP 80
Ande SA_REP 80
Banda SA_REP 80
Ozer SA_REP 80
Bloom SA_REP 80
Fox SA_REP 80
Smith SA_REP 80
Bates SA_REP 80
Kumar SA_REP 80
Abel SA_REP 80
Hutton SA_REP 80
Taylor SA_REP 80
Livingston SA_REP 80
Grant SA_REP
Johnson SA_REP 80
JOB_ID = 'IT_PROG' OR JOB_ID = 'ST_MAN' OR JOB_ID = 'SA_REP'
이런식으로 작성해도 무방하다.SELECT EMPLOYEE_ID, CONCAT(FIRST_NAME, LAST_NAME) "NAME", LENGTH(FIRST_NAME || LAST_NAME) AS "LENGTH"
FROM HR.EMPLOYEES
WHERE LAST_NAME LIKE '%n';
출력결과
EMPLOYEE_ID NAME LENGTH
102 LexDe Haan 10
105 DavidAustin 11
110 JohnChen 8
112 Jose ManuelUrman 16
123 ShantaVollman 13
130 MozheAtkinson 13
132 TJOlson 7
133 JasonMallin 11
151 DavidBernstein 14
153 ChristopherOlsen 16
158 AllanMcEwen 11
160 LouiseDoran 11
175 AlyssaHutton 12
177 JackLivingston 14
179 CharlesJohnson 14
182 MarthaSullivan 14
194 SamuelMcCain 12
200 JenniferWhalen 14
201 MichaelHartstein 16
SELECT LAST_NAME, TO_CHAR(HIRE_DATE,'DD-MON-YYYY')
FROM HR.EMPLOYEES
WHERE EXTRACT(YEAR FROM HIRE_DATE) >= 2007;
출력결과
LAST_NAME TO_CHAR(HIRE_DATE,'DD-MON-YYYY')
Ernst 21-5월 -2007
Lorentz 07-2월 -2007
Popp 07-12월-2007
Colmenares 10-8월 -2007
Mourgos 16-11월-2007
Landry 14-1월 -2007
Markle 08-3월 -2008
Olson 10-4월 -2007
Gee 12-12월-2007
Philtanker 06-2월 -2008
Cambrault 15-10월-2007
Zlotkey 29-1월 -2008
Tuvault 23-11월-2007
Greene 19-3월 -2007
Marvins 24-1월 -2008
Lee 23-2월 -2008
Ande 24-3월 -2008
Banda 21-4월 -2008
Smith 23-2월 -2007
Bates 24-3월 -2007
Kumar 21-4월 -2008
Grant 24-5월 -2007
Johnson 04-1월 -2008
Sullivan 21-6월 -2007
Geoni 03-2월 -2008
Cabrio 07-2월 -2007
Perkins 19-12월-2007
Jones 17-3월 -2007
OConnell 21-6월 -2007
Grant 13-1월 -2008
SELECT EMPLOYEE_ID "사원번호", LAST_NAME "사원명",
DECODE(SIGN(SALARY-10000),-1,'초급', DECODE(SIGN(SALARY-20000),-1,'중급','고급')) "구분"
FROM HR.EMPLOYEES
WHERE DEPARTMENT_ID = 20 OR DEPARTMENT_ID = 90
ORDER BY 3, 2;
SELECT EMPLOYEE_ID "사원번호", LAST_NAME "사원명",
CASE WHEN SALARY < 10000 THEN '초급'
WHEN SALARY>=10000 AND SALARY<20000 THEN '중급'
ELSE '고급' END AS "구분"
FROM HR.EMPLOYEES
WHERE DEPARTMENT_ID = 90 OR DEPARTMENT_ID = 20
ORDER BY 3, 2;
출력결과
사원번호 사원명 구분
100 King 고급
102 De Haan 중급
201 Hartstein 중급
101 Kochhar 중급
202 Fay 초급
SELECT EMPLOYEE_ID "사원번호", LAST_NAME "사원이름", SALARY "급여", COMMISSION_PCT "커미션",
'$' || (SALARY * 12 + (SALARY *12 * NVL(COMMISSION_PCT,0))) "연봉"
FROM HR.EMPLOYEES
WHERE EMPLOYEE_ID > 130 AND EMPLOYEE_ID <= 150;
출력결과
사원번호 사원이름 급여 커미션 연봉
131 Marlow 2500 $30000
132 Olson 2100 $25200
133 Mallin 3300 $39600
134 Rogers 2900 $34800
135 Gee 2400 $28800
136 Philtanker 2200 $26400
137 Ladwig 3600 $43200
138 Stiles 3200 $38400
139 Seo 2700 $32400
140 Patel 2500 $30000
141 Rajs 3500 $42000
142 Davies 3100 $37200
143 Matos 2600 $31200
144 Vargas 2500 $30000
145 Russell 14000 0.4 $235200
146 Partners 13500 0.3 $210600
147 Errazuriz 12000 0.3 $187200
148 Cambrault 11000 0.3 $171600
149 Zlotkey 10500 0.2 $151200
150 Tucker 10000 0.3 $156000