목록콤퓨타 왕기초 (187)
파게로그
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ckSxAF/btq1K23Fkvr/t6F6UzVGzPfAoozP4DnFy1/img.png)
ROWNUM SELECT ROWNUM, empno, ename, title, sal FROM emp WHERE ROWNUM
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CpjkO/btq1MraUFl2/XQpUMURvCVDEujgOrJKNOK/img.png)
using pivot and unpivot docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__CHDFIIDD pivot_clause docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/SELECT.html#GUID-CFA006CA-6FF1-4972-821E-6996142A51C6__GUID-3C9CD3C5-0A70-4A6F-A76C-309A6502A2C3 Pivot and Unpivot www.oracle.com/technical-resources/articles/database/sql-11g-p..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baUrs0/btq1KBdRFVQ/swFKaMbyfWIpR1K63uiXJk/img.png)
RANK, DENSE_RANK SELECT ename, title, sal, RANK() OVER (ORDER BY sal DESC) RANK, DENSE_RANK() OVER (ORDER BY sal DESC) DENSE_RANK FROM emp WHERE title IN ('RESEARCHER', 'COOPERATOR', 'ANALYST'); OVER 뒤에 출력하고 싶은 데이터를 정렬하는 문장을 넣으면, 그 column의 값에 대한 데이터의 순위가 출력된다. SELECT ename, title, sal, RANK() OVER (PARTITION BY title ORDER BY sal DESC) 순위 FROM emp; title별로 묶이고, 순위도 title 내에서 계산된다. title은 항상 오름차순..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bhp1nw/btq1KAssWuG/xkUF1N8lA1T4nc1daJvKL1/img.png)
집계함수(aggregate function)는 단일한 행이 아니라 여러 행에 기반하여 함수가 적용된 결과를 반환한다. 주로 GROUP BY와 함께 쓰이며, 이는 질의의 대상인 테이블의 행을 분할하거나, 뷰를 여러 그룹으로 나누는 키워드이다. 이러한 각각의 그룹에 대해서 하나씩의 결과 행을 반환한다. MAX SELECT MIN(sal) FROM emp WHERE title = 'COOPERATOR'; MIN SELECT title, MIN(sal) 최솟값 FROM emp GROUP BY title ORDER BY 최솟값 DESC; SELECT MIN(sal) FROM emp WHERE 1 = 2; 그룹 함수는 WHERE절의 조건이 거짓이어도, 즉 이를 만족하는 row가 하나도 없더라도, NULL 결과를 출..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bpeupS/btq1KdxxxOD/I8ijX2o2X8pUBd4O9WkLa0/img.png)
DECODE SELECT ename, deptno, DECODE(deptno, 10, 300) 보너스 FROM emp; SELECT ename, deptno, DECODE(deptno, 10, 300, 20, 400, 30, 500, 0) 보너스 FROM emp; IF (deptno == 10) THEN RETURN 300 ELSE IF (deptno == 20) THEN RETURN 400 ELSE IF (deptno == 30) THEN RETURN 500 ELSE RETURN 0 CASE SELECT ename, title, sal, CASE WHEN sal >= 3000 THEN 500 WHEN sal >= 2000 THEN 300 WHEN sal >= 1000 THEN 200 ELSE 0 END..
SELECT ename, sal FROM emp WHERE sal = '3000'; 문자형과 숫자형 비교 시 숫자형으로 암시적 형 변환된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/naDho/btq1K29471Q/rYrkqko9kc2p3eFZZkBX01/img.png)
산술 연산자 NVL( ) SELECT sal, comm, sal + comm, sal + NVL(comm, 0) FROM emp; NVL(column명, 값)을 통해 NULL 데이터를 값으로 처리할 수 있다. 비교 연산자 BETWEEN ~ AND ~ SELECT ename, deptno, hiredate FROM emp WHERE hiredate BETWEEN '1991/03/01' AND '1991/10/01'; 날짜에도 사용할 수 있다. LIKE SELECT ename, deptno FROM emp WHERE ename LIKE '도%'; -- '도'로 시작하는 문자열 매치 SELECT ename, deptno FROM emp WHERE ename LIKE '%도%'; -- '도'가 들어간 문자열 매..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Gi5VZ/btq1IRWsubH/QMQjcLkkKPkgdU61rPOSYk/img.png)
SELECT * FROM NLS_SESSION_PARAMETERS WHERE PARAMETER='NLS_DATE_FORMAT'; 현재 접속한 session의 날짜 형식을 확인할 수 있다. SELECT * FROM NLS_SESSION_PARAMETERS; NLS는 National Language Support의 약자이며, NLS_SESSION_PARAMETERS에는 언어 지원과 관련된 다양한 파라미터들이 존재한다. ALTER SESSION SET NLS_DATE_FORMAT = 'YY/MM/DD' 이름에서 알 수 있듯이 파라미터는 세션을 단위로 유효하며 로그아웃 후 재접속 시 NLS_DATE_FORMAT은 기본값인 RR/MM/DD로 복구된다. YYYY 연도 4자리 HH24 시간(0~24) YY, RR 연..