개발에 들어가기 앞서 SQL 문을 보면서 익숙하지 않는 ORACLE 함수를 정리해보려고 한다.
1. CONCAT, ||
LIKE ('%' || #변수# || '%')
||은 CONCAT과 동일하게 문자열을 합치는 기능을 한다.
+) LIKE 함수를 쓸 때 왜 || 를 활용하느냐?
%#변수#% 이렇게 사용할 수 있지만, SQL INJECTION에 위협이 크기 때문임
2. DECODE, CASE WHEN
DECODE(USE_YN, 'Y', 'Y', 'N')
: if use_yn == "Y" 이라면 Y이고 아니면 N이다.
DECODE는 IF ELSE와 같은 기능을 한다.
SQL문에서 통용되지 않기 때문에 CASE WHEN을 사용하는 것을 권장함. 속도도 case when이 더 빠르다고 함
(왜 DECODE문과 CASE WHEN 문을 같은 쿼리에 두었는지는 모르겠다,,)
SELECT ename
, deptno
, CASE WHEN deptno = '10' THEN 'New York'
WHEN deptno = '20' THEN 'Seoul'
ELSE 'Toronto'
END AS location
FROM emp
3. OVER()
분석_함수() OVER(PARTITION BY 컬럼 / ORDER BY 컬럼 / 세부 분할 기준)
1) PARTITION BY : Group by와 비슷한 기능
4. NVL, NVL2
1) NVL 함수는 값이 null인 경우 지정값을 출력한다.
- 함수 : NVL("값", "지정값")
2) NVL2 함수는 null이 아닌경우 지정값1을 출력하고, null인 경우 지정값2을 출력 한다.
- 함수 : NVL2("값", "지정값1", "지정값2")
'DATABASE > Oracle' 카테고리의 다른 글
[ORACLE] 계층형 쿼리 간단 예제 (0) | 2021.08.05 |
---|---|
다운로드 링크 사라진 Oracle 11g 설치하기 (0) | 2021.08.04 |