SQL 단일행 함수 - 문자함수

2020. 4. 14. 13:33·Programming/SQL
728x90

단일행 함수의 종류

1. 문자함수

 -upper, lower, inticap, substr, instr, length, lpad, rpad, trim, replace, concat

2. 숫자함수

3. 날짜함수

4. 변환함수

5. 일반함수


문자 함수

1. upper 함수 - 데이터를 대문자로 출력하는 함수

select telecom, upper(telecom) 
from emp11;

 

-> 원래 소문자인 문자열이 대문자로 나온다.

 

 

 

 

 

 

 

 

2. lower 함수 - 데이터를 소문자로 출력하는 함수

select ename, lower(ename)
from emp;

 

3. initcap 함수 - 첫번째 철자는 대문자로 출력하고 나머지는 소문자로 출력하는 함수

select ename, inticap(ename) 
from emp;

 

4. substr 함수 - 단어에서 특정 철자만 잘라내는 함수

substr(컬럼명, 시작위치, 길이)

 

<앞에서 부터 문자열 출력하기>

select ename, substr(ename, 1,3), substr(ename, 2,3), substr(ename, 3)  
from emp  
where ename = 'KING';

substr(ename, 1,3) : KING이름 1번째 철자부터 3개 출력

substr(ename, 2,3) : KING이름 2번째 철자부터 3개 출력

substr(ename, 3)   : KING이름 3번째 철자부터 끝까지 출력

 

<뒤에서 부터 문자열 출력하기>

select ename, substr(ename, -1,1), substr(ename, -4,3), substr(ename, -2)  
from emp  
where ename = 'TURNER';

substr(ename, -1,1) : TURNER 이름 뒤에서 하나 출력

substr(ename, -4,3) : TURNER 이름 뒤에서 4번째 부터 3개 출력

substr(ename, -2)   : TURNER 이름 뒤에서 2개 출력

 

5. instr 함수 - 단어에서 특정 철자의 자리수를 출력하는 함수

instr(컬럼명, 찾을 문자, 양수 or 음수 )

양수면 앞에서 부터 읽고

음수면 뒤에서 부터 읽지만 결과값은 앞에서부터 숫자 순서대로 나온다.

select ename, instr(ename, 'A')
from emp;

6. length 함수 - 문자의 길이를 출력하는 함수

select ename, length(ename) 
from emp;

 

7. lpad 함수와 rpad 함수 - 막대그래프 처럼 데이터를 간단하게 시각화 할 수 있는 함수

lpad(값, 총문자길이, 채울문자)

select ename, lpad(sal,10,'*') as salary
from emp;

-> 월급을 출력하는데 전체를 10자리를 잡고 출력하고 나머지 왼쪽에는 별표(*)로 채워넣어라.

 

문제) 위의 결과를 다시 출력하는데 숫자는 나오지 않게하고 ■ 하나를 100단위로 출력하시오

select ename, lpad('■', sal/100, '■') as salary
from emp;

 lpad('■', sal/100, '■') -> 월급이 3000이면 100으로 나누면 30. 전체가 30자리.

                                  네모가 한칸 들어가고 그 뒤에 나머지 29자리를 네모가 채운다

 

8. trim 함수 - 특정 철자를 잘라내 버리는 함수

trim('잘라낼 철자' from 컬럼명)

 

<철자 하나 잘라낼 때>

select ename, trim('S' from ename) 
from emp;

-> 하나의 철자를 잘라낼때는 trim을 사용 

    여러개를 잘라낼때는 rtrim과 ltrim을 사용

    rtrim은 오늘쪽에 있는 철자를 잘라낼때 ltrim은 왼쪽에 있는 철자를 잘라낼때

 

<오른쪽의 철자를 잘라낼 때>

select email, rtrim(email, '.com')
from emp11;

-> 같은 방법으로 왼쪽 철자를 잘라내고 싶으면 ltrim을 사용하면 된다.

 

9. replace 함수 - 특정 철자를 다른 철자로 대체하는 함수

replace(컬럼명, 바꿀문자, 대체할 문자)

select ename, replace(sal, 0, '*')
from emp

-> 0대신에 *를 넣어라

 

10. concat 함수 - 두개의 컬럼의 데이터를 붙여서 출력하는 함수

select concat(ename, sal) 
from emp;

 

'Programming/SQL' 카테고리의 다른 글
  • SQL 단일행함수 - 날짜함수
  • SQL 단일행함수 - 숫자함수
  • SQL 연산자
  • SQL 기초
해치
해치
뭐라도 하자
  • 해치
    hi there
    해치
  • 글쓰기 관리자
  • 전체
    오늘
    어제
    • ALL (70)
      • Programming (62)
        • Python (14)
        • SQL (13)
        • 알고리즘 (35)
      • Framework (4)
        • Airflow (3)
        • Django (1)
      • Infra (3)
        • Docker (3)
        • Linux (0)
      • AWS (0)
      • Dashboard (1)
  • 블로그 메뉴

    • 링크

    • 인기 글

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    해치
    SQL 단일행 함수 - 문자함수
    상단으로

    티스토리툴바