Oracle DataBase
SELECT - Function (上)
단일 행 함수
N개 Input에 대한 N개 Output 결과를 반환하는 함수를 단일 행 함수라 한다.
- 문자 관련 Function
- LENGTH()
- 문자열의 길이(Byte값을 기준으로)를 반환해주는 함수
- 한글과 영어는 BYTE값이 다르기 때문에 LENGTH가 다를 수 있음을 주의해야 한다.
- CHAR 타입은 실제 길이와 상관없이 고정 LENGTH를 반환
- VARCHAR 타입은 입력된 실제 LENGTH를 반환
- INSTR()
- 문자열이 지정한 위치부터 지정한 횟수만큼 나타난 시작위치를 반환해주는 함수
INSTR(STRING, SUBSTR, [POSITION, [OCCURRENCE]])
- LPAD/RPAD
- 기준 문자열에 LEFT나 RIGHT에 N길이가 되도록 문자열을 추가해주는 함수
- 보기 좋게 공백이나 특수문자를 추가해줄 때 사용하면 좋을 듯 싶다.
LPAD( string, N, [str] )
- L/R TRIM
- 해당 문자열에서 지정한 특정 문자열을 모두 제거하는 함수
- 특정 문자열을 패턴이 아닌 종류로 보는 것이 좋다.
- 주의할 점은, 방향성이 주어진 TRIM 함수들은 진행 중에 주어진 문자열이 아닌 다른 문자열을 만나면 함수롤 종료한다는 것!
LTRIM( STRING, STR )
- TRIM
- L/R TRIM을 통합할 수 있는 TRIM
- L/R 과 다른 점은 trim_char를 한 글자만 주어야 한다.
- L/R 처럼 주어진 trim_char외 다른 글자가 발견되면 TRIM을 중지한다.
TRIM(LEADING | TRAILING | BOTH [trim_char] FROM [basis_char])
- SUBSTR
- SUBSTRING 함수 (그닥 설명할 것이 없네…)
SUBSTR( STRING, POSITION, [ LENGTH ] )
- LENGTH()
- 숫자 관련 Function
- ROUND
- 흔하게 있는 함수 중 하나인, 반올림 하는 함수
ROUND( number, [ decimal_places ] )
- decimal_places > 0 : 소수점 이하 자리 의미
- decimal_places < 0 : 소수점 이상 자리 의미
- TRUNC
- 지정된 자릿수에서 절삭하는 함수 (무조건 버림)
TRUNC( NUMBER, [ DECIMAL_PLACES ] )
- ROUND
- 날짜 관련 Function
- ADD_MONTHS
- 주어진 DATE에 MONTH만큼 더하는 함수
ADD_MONTH( DATE, MONTH )
- MONTHS_BTWEEN
- 두 DATE 사이의 값을 알아보는 함수
- 이 함수를 통해 Oracle DB에서 날짜로 연산이 가능하다는 것을 알 수 있다.
MONTHS_BETWEEN( DATE1, DATE2 )
- SYSDATE
- 시스템 상의 현재 시간을 다루는 함수
- ADD_MONTHS
- type 변환 함수
- TO_CHAR
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD') "TO_CHAR" FROM DUAL;
SELECT TO_CHAR(12345,'000,00') "TO_CHAR" FROM DUAL;
- TO_DATE
SELECT TO_DATE('20190308') FROM DUAL;
SELECT TO_DATE('20190308','yyyMMdd') FROM DUAL;
SELECT TO_DATE(20190308) FROM DUAL;
- TO_NUMBER
SELECT TO_NUMBER('7654321') FROM DUAL;
SELECT TO_NUMBER(TO_CHAR(sysdate,'yyyy')) FROM DUAL;
- 데이터를 NUMBER로 바꾸기 위해서는 일단 STRING으로 바꾸는 작업을 해주어야 한다.
- TO_CHAR
Written on January 31, 2020