Oracle DB_문자열 함수

JW__1.7·2022년 8월 30일
0

DB 공부일지

목록 보기
17/27

문자열 함수

대소문자 변환

UPPER(칼럼) : 칼럼의 데이터를 모두 대문자로 변환
LOWER(칼럼) : 칼럼의 데이터를 모두 소문자로 변환
INITCAP(칼럼) : INITIAL CAPITAL, 첫 글자는 대문자 나머지는 소문자로 변환

SELECT
       EMAIL
     , UPPER(EMAIL)
     , LOWER(EMAIL)
     , INITCAP(EMAIL)
  FROM 
       EMPLOYEES;

FIRST_NAME 칼럼에서 'JAMES' 조회하기

SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME
  FROM EMPLOYEES
 WHERE FIRST_NAME = INITCAP('JAMES');

길이

LENGTH(칼럼) : 칼럼 데이터의 글자 수 반환
LENGTHB(칼럼) : 칼럼 데이터의 바이트 수 반환

SELECT
       LENGTH('HELLO'), LENGTHB('HELLO')
     , LENGTH('안녕'), LENGTHB('안녕')
  FROM
       DUAL;

연결

  • || 연산자
  • CONCAT(A, B) : A와 B를 연결
    • CONCAT 함수의 인수(arguments)는 2개만 지원
    • A와 B와 C의 연결
      ① CONCAT(A, B, C) 불가능
      ② CONCAT(CONCAT(A, B), C) 가능
SELECT
       FIRST_NAME || ' ' || LAST_NAME AS FULL_NAME
     , CONCAT(CONCAT(FIRST_NAME, ' '), LAST_NAME) AS FULL_NAME
  FROM
       EMPLOYEES;

일부 반환

  • SUBSTR(칼럼, BEGIN, LENGTH)
    칼럼 데이터의 BEGIN 위치부터 LENGTH만큼 반환
    BEGIN은 인덱스가 아니다. (BEGIN은 1부터 시작)
SELECT
       SUBSTR(FIRST_NAME, 1, 3)    -- 1번째 글자부터 3글자를 가져옴
  FROM
       EMPLOYEES;

특정 문자열의 위치 반환

  • INSTR(칼럼, 찾을문자열)
    반환되는 위치는 인덱스가 아니다. (1부터 시작)
    찾는 문자열이 없으면 0을 반환
SELECT
        INSTR(EMAIL, 'A')   -- 'A'의 위치를 반환
  FROM
       EMPLOYEES;

문자열 채우기(PADDING)

LPAD(칼럼, 전체폭, 채울문자)

SELECT
       LPAD(DEPARTMENT_ID, 3, 0)    -- 왼쪽에 0을 채워서 3자리로 조회
     , LPAD(NVL(DEPARTMENT_ID, 0), 3, 0) 
  FROM
       EMPLOYEES;

RPAD(칼럼, 전체폭, 채울문자)

SELECT
       RPAD(SUBSTR(EMAIL, 1, 2), 5, '*')    -- 오른쪽에 *를 채워서 5자리로 조회
  FROM
       EMPLOYEES;

공백 제거

LTRIM(칼럼) : 칼럼 데이터의 왼쪽 공백 제거
RTRIM(칼럼) : 칼럼 데이터의 오른쪽 공백 제거
TRIM(칼럼) : 칼럼 데이터의 양쪽 공백 제거

SELECT
       LENGTH(LTRIM('   HELLO'))
     , LENGTH(RTRIM('HELLO   '))
     , LENGTH(TRIM('    HELLO   '))
  FROM
       DUAL;

0개의 댓글