ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB CASE문 LEFT RIGHT SUBSTRING함수
    Database/MS-SQL 2008. 10. 17. 11:53
    반응형

    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



    반응형

    댓글

Designed by Tistory.