자격증/SQLD

[SQLD] 강의 12~13. SQL함수_TRIM, NULL함수

phyho 2025. 2. 1. 16:20

 

3.3 함수

TRIM (문자열 처리 함수) 
 - LEADING
 - TRAILING
 - BOTH

 

 * TRIM
 - 문자열의 양 끝단에서 공백 또는 지정된 문자열을 제거하고 반환한다.

 TRIM ( [ [arg1] [arg2] FROMarg3 )
 => arg1 : LEADING / TRAILING / BOTH, 생략될 경우 기본값은 BOTH이다.
 => arg2 : 제거할 특정 문자 또는 문자열. arg2가 생략되면 공백을 제거한다.
 => arg3 : 문자열값 또는 문자열형의 칼럼.

 


 

SELECT TRIM('    GOOD    ') FROM DUAL ;
=> 문장의 앞, 뒤에서 공백 제거

결과 : 'GOOD'

SELECT TRIM(LEADING '가' FROM '가나다라') FROM DUAL ;
=> '가나다라' 의 앞에서 '가' 제거 

결과 : '나다라'

SELECT TRIM(BOTH '가' FROM '가나다라가') FROM DUAL ;
=> '가나다라가' 의 앞, 뒤에서 '가' 제거 

결과 : '나다라'

 


 

  • LTRIM  => TRIM LEADING
  • RTRIM => TRIM TRAILING
  • SUBSTR => 문자열 추출
  • REPLACE => 문자열 대체
  • LENGTH => 문자열 길이
  • UPPER / LOWER 

 


 

 - Null 관련 함수 

내장함수는 DBMS 종류에 따라 다름. (Oracle, sql 등...)
공통 SQL 함수 위주로.

 

 * NVL
 - 첫 번째 인자가 Null이 아니면 첫 번째 인자를 그대로 반환하고, Null이면 두 번째 인자를 반환.
   ( SQL Server에서는 NVL 대신 ISNULL을 사용 )     
   NULL인 데이터들을 지정한 값으로 치환하여 처리하기 위함!*

NVL(arg1, arg2)
=> arg1 : 컬럼 또는 표현식.
=> arg2 : 컬럼 또는 표현식. 단, arg1과 같은 데이터 타입을 가져야 한다.

SELECT EMPNO, ENAME, NVL(COMM, 0) AS COMM FROM EMP ;
=> COMM 컬럼의 값이 NULL인 것을 0으로 치환하여 반환.

 


 

 * NULLIF
 - 입력된 두 인자가 같으면 Null을 반환하고 다르면 첫 번째 인자를 반환.

NULLIF(arg1, arg2)
=> arg1 : 컬럼 또는 표현식.
=> arg2 : 컬럼 또는 표현식. 단, arg1과 같은 데이터 타입을 가져야 한다.

SELECT EMPNO, ENAME, MGR, NULLIF(MGR, 7698) AS NM FROM EMP ;
=> MGR 컬럼의 값이 7698인 것을 NULL로 치환하여 반환.
NULL인 경우 통계 연산에서 걸러짐*

 


 

 * COALESCE
 - 입력된 인자를 순서대로 평가해 Null이 아닌 첫 번째 인자를 반환.

COALESCE(arg1 [[, arg2] ... ])
=> arg1 : 컬럼 또는 표현식.
=> arg2 : 컬럼 또는 표현식. 단, arg1과 같은 데이터 타입을 가져야 한다.

SELECT EMPNO, COALESCE(HOURLY_WAGE, SALARY, COMMISSION) AS TOTAL_SALARY FROM WAGES ;
=> HOURLY_WAGE, SALARY, COMMISSION 컬럼 순으로 읽어서 NULL이 아닌 첫 번째 값을 반환.

 

  • 데이터의 오류를 방지하기 위해 NULL처리는 필수!!

 


 

https://www.youtube.com/watch?v=Q0r1uoLQZn0&list=PLDI0745yTBjXFuIFYqq3vzcQYuVyajFpC&index=12

https://www.youtube.com/watch?v=yhaAjBUttK0&list=PLDI0745yTBjXFuIFYqq3vzcQYuVyajFpC&index=13