티스토리 뷰

728x90

UPPER()

  • 매개변수로 입력한 '문자열'을 대문자로 바꾼다.
SELECT UPPER('sskim') FROM DUAL;

LOWER()

  • 매개변수로 입력한 '문자열'을 소문자로 바꾼다.
SELECT LOWER('SSKIM') FROM DUAL;

SUBSTR(), SUBSTRB()

  • 매개변수로 입력한 '문자열'의 시작위치부터 개수 만큼의 문자를 구한다.
  • SUBSTR('문자열', '시작위치', '구하는 개수'), SUBSTRB('문자열', '시작위치', '구하는 개수')
  • SUBSTR() 과 SUBSTRB() 의 차이
    • SUBSTR()은 자릿수를 1자리로 인식
    • SUBSTRB()는 자릿수를 2자리로 인식, 한글은 일반적으로 2바이트 크기를 가지는 문자
    • 인터넷 찾아보니 뒤에 B가 붙으면 바이트 단위로 자르는 거인것 같음.
SELECT SUBSTR('오라클 EXAMPLE', 1,3) FROM DUAL;


-- || 문자열 합치기로 날짜포맷에 '-' 붙여보기
SELECT SUBSTR(S1.DT,1,4) || '-' ||
        SUBSTR(S1.DT,5,2) || '-' ||
        SUBSTR(S1.DT,7,2) AS DT_FORMAT
FROM(
    SELECT '20201110' AS DT
    FROM DUAL
)S1;

LENGTH(), LENGTHB()

  • 매개변수로 입력한 '문자열'의 길이를 구한다.
  • NULL값이면 길이는 0이고 공백은 1의 길이를 갖는다.
  • SUBSTR()과 SUBSTRB()의 차이와 같음
SELECT LENGTH('ORACLE'),LENGTH(' ORACLE '),LENGTH('ORACLE SQL') FROM DUAL;

  • 첫번째는 글자수 6개, 두번째는 앞뒤 공백을 포함한 8개, 세번째는 가운데 공백을 포함한 10개이다.

RPAD(), LPAD()

  • Right와 Left 로 매개변수로 입력한 '개수'만큼 공백을 만들어서 '문자열'을 오른쪽이나 왼쪽에 위치시키고 나머지는 채우려는 문자로 채운다.
  • 말보다는 코드로 보는것이 낫다.
SELECT RPAD('sskim', 10, '*'),LPAD('sskim', 10, '*') FROM DUAL;

RTRIM(), LTRIM()

  • 오른쪽과 왼쪽 공백을 없애준다.
SELECT RTRIM('SSKIM    '), LTRIM('    SSKIM') FROM DUAL;

TRIM()

  • RTRIM()과 LTRIM()은 왼쪽 오른쪽만 공백을 없애주지만 TRIM()은 전체 공백을 다 없애준다.
SELECT TRIM('    SSKIM    ') FROM DUAL;

INITCAP()

  • 영문 첫 글자를 대문자로 바꾸고 나머지는 소문자로 바꾼다.
  • 단어별 첫번째 문자를 대문자로 한다. 띄어쓰기 공백이 있을 경우 두 단어로 인식
SELECT INITCAP('Hello world') FROM DUAL;

CONCAT()

  • CONCAT() 함수는 (값1, 값2)을 연결하는 기능으로 값으로 문자열, 수치, 날짜 등이 쓰인다.
  • || 기호로는 여러 값을 연결할 수 있지만 CONCAT()은 2개의 값만 연결할 수 있다.
  • 2개의 값만 연결하려면 CONCAT()을 사용하고 여러 문자열을 연결하려면 || 기호를 사용하면된다.
SELECT CONCAT('AB','CD') FROM DUAL;

INSTR(), INSTRB()

  • 문자열에서 찾을 문자열의 위치를 구한다.
  • INSTR(문자열, 찾을 문자열, 시작위치)
SELECT  INSTR('Oracle 프로그래밍 화이팅', '화이팅') as LOC1,
        INSTR('Oracle 프로그래밍 화이팅', 'Oracle') as LOC2
FROM DUAL;

REPLACE()

  • 문자열을 바꾸는 함수, REPLACE(문자열, 대상문자, 교체문자)
SELECT  REPLACE('2020/11/10', '/', '-'), 
        REPLACE('2020/11/10', '/', ''), 
        REPLACE('Hello World', 'Hello', '안녕')
FROM DUAL;

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함