카테고리 없음

누구나 쉽게 SQL 6.2.2 문자형 함수 (SUBSTR, CONCAT, TRIM)

성장하는 재테커 2024. 3. 18. 06:19
반응형

실무에서 많이 쓰이는 함수들 중 하나로 SUBSTR에 대한 정의,예시가 포함된 문자형 함수에 대해 누구나 쉽게 SQL 책에 나와 있는 내용을 정리해 보려고 한다. SUBSTR은 특정 컬럼의 값을 A 위치에서 시작해 B번째 자리까지 잘라서 반환하는 함수로 문자형 함수에서는 그나마 많이 활용 되는데, 나는 그동안 많이 활용을 못했던 함수 중 하나로 정리해 두고 나중에 필요할때마다 찾아서 적용해 보고 익혀서 나중에는 찾아보지 않아도 저절로 기억되어 사용할 수 있도록 해보려고 한다.

그리고 실무에서 시스템에 문제되었던 케이스 중 하나로 개발자분들이 말씀하셨던 함수가 있었는데 그 당시에는 어떤 함수인지 잘 몰랐는데 이 장에서 정의와 예시가 있어 알게 된 함수 중 하나가 있는데 그게 바로 CONCAT 함수다. || 연산자는 대략적으로 어떤 것인지 알고 있었는데 CONCAT 함수가 바로 || 연산자와 동일한 것이라고 하니 어떤 것인지 감이 딱! 왔음.ㅎㅎ 두 컬럼의 값을 연결(결합)하여 사용하기 좋은 함수인 것 같은데 한번도 안써봐서 다음에 실무에서 CONCAT 함수도 종종 써보도록 해야 겠다.

 

 

 

P.84

 

표6-3. 문자형 데이터를 반환하는 문자형 함수

 

CHR (n): n은 숫자로 n 값에 해당되는 문자를 반환

ex) SELECT CHR(76)||CHR(66)||CHR(67)

FROM DUAL;

→ ABC

 

INITCAP(char): char의 첫 번째 문자를 대문자로 변환

ex) SELECT INITCAT ('the')

FROM DUAL;

→ The

 

LOWER(char): char을 소문자로 변환

ex) SELECT LOWER ('THE')

FROM DUAL;

→ the

 

UPPER(char) : char을 대문자로 변환

ex) SELECT LOWER ('the')

FROM DUAL;

→ THE

 

CONCAT(char1,char2) : char1과 char2 문자를 결합한 결과를 반환, ||연산자와 같은 기능

ex) SELECT CONCAT ('A','B')

FROM DUAL;

→ AB

 

SUBSTR(char,n1,n2) 

-char에서 n1위치에서 시작해 n2 길이만큼을 잘라낸 결과를 반환

-n1을 0으로 명시하면 1이 적용

-n1이 음수이면 char 오른쪽 끝에서부터 거꾸로 세어 가져옴

-n2를 생략하면 n1부터 끝까지 반환

-n2값을 1미만으로 지정하면 NULL을 반환

 

ex) SELECT SUBSTR('ABCDEFG',3,2)

FROM DUAL;

→ CD

 

SELECT SUBSTR('ABCDEFG',-3)

FROM DUAL;

→ EFG

 

LTRIM(expr1,exprt2): expr1의 왼쪽에서 expr2를 제거한 결과를 반환

ex) SELECT LTRIM ('**THE**,'*')

FROM DUAL;

→ THE**

 

RTRIM(expr1,expr2): expr1의 오른쪽에서 expr2를 제거한 결과를 반환

ex) SELECT RTRIM ('**THE**,'*')

FROM DUAL;

→ **THE

 

TRIM(char): char의 양쪽 끝 공백을 제거한 결과를 반환

ex) SELECT TRIM('  ABCD EFG  ')

FROM DUAL;

→ ABCD EFG

 

LPAD(expr1,expr2): expr1을 반환하는데, expr2를 (n-expr1 길이) 만큼 왼쪽을 채워 반환

ex) SELECT LPAD ('THE',5,'*')

FROM DUAL;

→ **THE

 

RPAD(expr1,expr2): expr1을 반환하는데, expr2를 (n-expr1 길이) 만큼 오른쪽을 채워 반환

ex) SELECT RPAD ('THE',5,'*')

FROM DUAL;

→ THE**

 

 

표6-3에 나온 함수 중 특히 많이 사용하는 함수는 CONCAT, SUBSTR, TRIM 정도입니다. 특히 SUBSTR은 SQL 함수를 통틀어 가장 많이 사용하는 함수라고 해도 과언이 아닙니다. 그만큼 어떤 문자열에서 문자 일부를 잘라낸 결과를 사용하는 경우가 많습니다.

 

[SUBSTR 예시]

SUBSTR('ABCDEFG', 1, 3): 첫 번째 자리에서 세 글자를 잘라 반환하므로 'ABC'를 반환SUBSTR('ABCDEFG', 0, 3): 0은 1을 의미하므로 위와 같은 결과인 'ABC'를 반환SUBSTR('ABCDEFG', 1): n2를 생략해서 첫 번째 자리에서 전체를 반환하므로 'ABCDEFG'를 반환SUBSTR('ABCDEFG', -2): n1이 음수이므로 오른쪽 끝에서 두 번재 글자인 'F'에서 시작, 그런데 n2가 생략되어 'F'이후 오른쪽 나머지 글자를 가져오므로 'FG'를 반환

SUBSTR('ABCDEFG', -2, 1): n1이 -2이므로 오른쪽 끝 두 번째 자리인 'FG'를 반환하는데, n2가 1이므로 한 글자를 잘라 반환하므로 'F'를 반환

SUBSTR('ABCDEFG', -2, -1): n2가 음수이므로 n1에 상관없이 NULL을 반환

 

 

 

표6-4. 숫자형 데이터를 반환하는 문자형 함수

ASCII(char) : char 문자의 ASCII 코드 값을 반환. CHR 함수와 반대 기능을 함

ex) SELECT ASCII ('A')

FROM DUAL;

→ 65

 

INSTR(char1, char2, n1, n2)

- char1에서 char2 문자를 찾아 그 시작 위치를 반환함

- n1은 char1에서 몇 번째 문자부터 찾을 것인지를 나타내는 위치이며 생략 시 1이 적용됨

- n2는 char1에서 char2 문자를 찾을 때 일치하는 문자의 몇 번째 위치를 반환할지를 나타냄. 생략 시 1이 적용됨

ex) SELECT INSTR('ABABAB','A',2)

FROM DUAL;

→ 3

→N1은 2이고 N2가 생략되어 1이 적용되므로 첫 번째 문자열의 두 번째 문자(N1이 2)인 'B'에서 시작해 'A'를 만나는 첫 번째 위치(n2가 1)인 3을 반환

 

LENGTH(char) : char 문자의 글자 수를 반환함

ex) SELECT LENGTH('the')

FROM DUAL;

→ 3

 

출처: 누구나 쉽게 SQL, 홍형경

 

출처: 픽사베이

반응형