본문 바로가기
프로그래밍 언어/SQL

문자열 관련 함수, Case(조건문)

by 진진리 2023. 9. 15.
728x90
  • 문자열 쪼개기: SUBSTRING_INDEX(속성명, '기준문자', 가져올_조각_위치)
select user_id, email, SUBSTRING_INDEX(email, '@', 1) from users
//이메일에서 아이디만 가져오기 (1번째 조각)

select user_id, email, SUBSTRING_INDEX(email, '@', -1) from users
//이메일에서 도메인만 가져오기 (마지막 조각)

 

  • 문자열 일부 출력: SUBSTRING(속성명, 시작위치, 글자개수)
select order_no, created_at, substring(created_at,1,10) as date from orders
//날짜시간에서 앞의 날짜 부분(첫글자 위치, 글자 개수)만 출력

select substring(created_at,1,10) as date, count(*) as cnt_date from orders
group by date
//날짜별 주문 개수

CASE: 경우에 따라 원하는 값을 출력

CASE

조건문 THEN 참일_때_출력할_값

ELSE 거짓일_때_출력할_값

END [AS 별칭]

 

- Subquery 이용한 통계

with table1 as (
	select pu.point_user_id, pu.point,
	case 
	when pu.point >= 10000 then '1만 이상'
	when pu.point >= 5000 then '5천 이상'
	else '5천 미만'
	END as level
	from point_users pu
)
select level, count(*) as cnt from table1
group by level

'프로그래밍 언어 > SQL' 카테고리의 다른 글

프로시저(Procedure)  (0) 2023.09.15
Subquery, WITH  (0) 2023.09.15
DML(insert, delete, update, select, union, join)  (0) 2023.09.15
DCL(grant, revoke, commit, rollback, savepoint)  (0) 2023.09.15
SQL 개념, DDL(create, alter, drop)  (0) 2023.09.14