더북(TheBook)

② CONCAT(char1, char2), SUBSTR(char, pos, len), SUBSTRB(char, pos, len)

CONCAT 함수는 ‘||’ 연산자처럼 매개변수로 들어오는 두 문자를 붙여 반환한다.

입력

    SELECT CONCAT('I Have', ' A Dream'), 'I Have' || ' A Dream'
      FROM DUAL;

결과

    CONCAT('IHAVE','ADREAM') 'IHAVE'||'ADREAM'
    ------------------------ ------------------
    I Have A Dream           I Have A Dream

SUBSTR는 문자 함수 중 가장 많이 사용되는 함수로, 잘라올 대사 문자열인 char의 pos번째 문자부터 len길이만큼 잘라낸 결과를 반환하는 함수다. pos 값으로 0이 오면 디폴트 값인 1, 즉 첫 번째 문자를 가리키며, 음수가 오면 char 문자열 맨 끝에서 시작한 상대적 위치를 의미한다. 또한 len 값이 생략되면 pos번째 문자부터 나머지 모든 문자를 반환한다.

입력

    SELECT SUBSTR('ABCDEFG', 1, 4), SUBSTR('ABCDEFG', -1, 4)
      FROM DUAL;

결과

    SUBSTR('ABCDEFG',1,4)     SUBSTR('ABCDEFG',-1,4)
    ------------------------- ----------------------------
    ABCD                      G

SUBSTR 함수는 문자 개수 단위로 문자열을 자르는 반면 SUBSTRB는 문자 개수가 아닌 문자열의 바이트(BYTE) 수만큼 잘라낸 결과를 반환한다(SUBSTRB의 맨 끝 글자인 ‘B’는 BYTE를 의미함). 나머지 처리 로직은 SUBSTR과 같다.

입력

    SELECT SUBSTRB('ABCDEFG', 1, 4), SUBSTRB('가나다라마바사', 1, 4)
      FROM DUAL;

결과

    SUBSTRB('ABCDEFG',1,4)       SUBSTRB('가나다라마바사',1,4)
    --------------------------- ---------------------------------
    ABCD                        가나

위 예제에서 보듯이 한글에서는 잘라올 길이로 4를 명시했지만 한 글자가 2바이트를 차지하므로 ‘가나’ 두 글자만 반환되었음을 확인할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.