본문 바로가기

Database/MS-SQL

DB CASE문 LEFT RIGHT SUBSTRING함수

반응형

C#의 스위치문과 같은형식

CASE문은 데이터가 세로로가 아니라 가로로 나온다



SELECT 
sale_ymd,
-- 케이스 시작
CASE 
WHEN SUBSTRING (sale_ymd, 5,2) = '01' THEN   -- SUBSTRING 값이 01 이면 1월달해라
'1월달' -- CASE WHEN  []     =   THEN   []
WHEN SUBSTRING (sale_ymd, 5,2) = '02' THEN
'2월달'

WHEN SUBSTRING (sale_ymd, 5,2) = '03' THEN
'3월달'
ELSE 
'몰라' 
END --케이스 끝 
FROM sale
WHERE sale_ymd LIKE '2008%'




SELECT 
CASE WHEN SUBSTRING (sale_ymd, 5,2) = '01' THEN sale_qty END
FROM sale
WHERE sale_ymd LIKE '2008%'



SELECT 
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '01' THEN sale_qty END) AS '1월달 판매량'
FROM sale
WHERE sale_ymd LIKE '2008%'



SELECT 
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '01' THEN sale_qty END) AS '1월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '02' THEN sale_qty END) AS '2월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '03' THEN sale_qty END) AS '3월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '04' THEN sale_qty END) AS '4월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '05' THEN sale_qty END) AS '5월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '06' THEN sale_qty END) AS '6월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '07' THEN sale_qty END) AS '7월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '08' THEN sale_qty END) AS '8월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '09' THEN sale_qty END) AS '9월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '10' THEN sale_qty END) AS '10월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '11' THEN sale_qty END) AS '11월달 판매량',
SUM(CASE WHEN SUBSTRING (sale_ymd, 5,2) = '12' THEN sale_qty END) AS '12월달 판매량'
FROM sale
WHERE sale_ymd LIKE '2008%'










LEFT RIGHT SUBSTRING


SELECT
LEFT(sale_ymd ,6)AS '판매년월',
SUM(sale_qty)AS '총판매량'
FROM sale -- sale_ymd 의 같은 값을 가저온다
GROUP BY LEFT (sale_ymd , 6) -- GROUP BY 로하면 200801 까지 짤린그룹들을 합계해서출력한다


SELECT sale_ymd, LEFT(sale_ymd, 6)-- sale 테이블에서 sale_ymd라는 열
FROM sale -- LEFT함수를 쓰면 문자를 왼쪽에서 부터 6자리 짜른다는말
-- 

SELECT sale_ymd, LEFT(sale_ymd, 6),
RIGHT(sale_ymd, 2) , RiGHT(sale_ymd , 4) -- LEFT RIGHT 문자열 함수
FROM sale

SELECT sale_ymd, 
SUBSTRING(sale_ymd, 5,2) -- 5번째부터 2개까지 짜른다
FROM sale