반응형

개발에 들어가기 앞서 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