[SQLD] 강의 12~13. SQL함수_TRIM, NULL함수
3.3 함수
TRIM (문자열 처리 함수)
- LEADING
- TRAILING
- BOTH
* TRIM
- 문자열의 양 끝단에서 공백 또는 지정된 문자열을 제거하고 반환한다.
TRIM ( [ [arg1] [arg2] FROM ] arg3 )
=> 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