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 |