SQL 작업 안내서 7 (CASE 표현 식)

3126 단어
  • CASE 표현 식 의 문법 CASE 표현 식 의 문법 은 간단 한 CASE 표현 식 과 검색 CASE 표현 식 으로 나 뉜 다.
  • CASE WHEN  THEN 
         WHEN  THEN 
         WHEN  THEN 
                    ·
                    ·
         ELSE 
    END
    

    WHEN 자구 의 유사 성 은 "열 = 값" 과 같 으 며, 반환 값 은 진짜 값 입 니 다.(TRUE / FALSE / UNKNOW) 의 표현 식 입 니 다. WHEN 자구 의 결과 가 TRUE 라면 THEN 뒤에 있 는 것 으로 되 돌아 갑 니 다. WHEN 자구 의 결과 가 FALSE 라면 다음 WHEN 자구 의 판단 으로 넘 어 갑 니 다. 마지막 WHEN 자구 의 반환 값 이 모두 FALSE 라 는 것 을 알 면 ELSE 의 표현 식 으로 되 돌아 가 종료 합 니 다.
  • CASE 표현 식 의 사용 방법
  • --             
    SELECT shop_name,
    CASE WHEN shop_type = '  '
         THEN CONCAT('A:',shop_type) 
         WHEN shop_type = '  '
         THEN CONCAT('B:',shop_type)
         WHEN shop_type = '    '
         THEN CONCAT('C:',shop_type)
         ELSE NULL
         END AS abc_shop_type
         FROM shop_list;
    +-----------+---------------+
    | shop_name | abc_shop_type |
    +-----------+---------------+
    | T       | A:          |
    |        | B:          |
    |   T    | A:          |
    |         | C:        |
    |         | C:        |
    |         | B:          |
    +-----------+---------------+
    
  • CASE 의 쓰기 위치 CASE 표현 식 은 모든 위치 에 쓸 수 있 습 니 다. CASE 표현 식 을 이용 하여 열 과 줄 을 교환 할 수 있 습 니 다.
  •  SELECT shop_type,SUM(sell_price) AS sum_price
     FROM shop_list
     GROUP BY shop_type;
    +-----------+-----------+
    | shop_type | sum_price |
    +-----------+-----------+
    |         | 5000      |
    |         | 3600      |
    |       | 8000      |
    +-----------+-----------+
    
    SELECT SUM(CASE WHEN shop_type = '  '
                    THEN sell_price ELSE 0 END) AS sum_price,
                    SUM(CASE WHEN shop_type = '    '
                    THEN sell_price ELSE 0 END) AS sum_price2,
                    SUM(CASE WHEN shop_type = '  '
                    THEN sell_price ELSE 0 END) AS sum_price3
     FROM shop_list;
    +-----------+------------+------------+
    | sum_price | sum_price2 | sum_price3 |
    +-----------+------------+------------+
    | 5000      | 8000       | 3600       |
    +-----------+------------+------------+
    

    두 번 째 표 의 sum price, sum price 2, sum price 3 는 첫 번 째 표 의 shop type 데 이 터 를 대표 합 니 다.
  • 간단 한 CASE 표현 식 간단 한 CASE 표현 식 은 CASE 표현 식 을 검색 하 는 것 보다 간단 하지만 조건 에 따라 제약 을 받 기 때문에 일반적으로 CASE 표현 식 을 검색 합 니 다. 간단 한 CASE 표현 식 의 문법:
  • CASE 
        WHEN  THEN 
        WHEN  THEN 
        WHEN  THEN 
                     ·
                     ·
        ELSE 
    END
    

    예시:
    --             
    SELECT shop_name,
           CASE shop_type
           WHEN '  ' THEN CONCAT('A:',shop_type)
           WHEN '  ' THEN CONCAT('B:',shop_type)
           WHEN '    ' THEN CONCAT('C:',shop_type)
           ELSE NULL
           END AS abc_shop_type
    FROM shop_list;
    +-----------+---------------+
    | shop_name | abc_shop_type |
    +-----------+---------------+
    | T       | A:          |
    |        | B:          |
    |   T    | A:          |
    |         | C:        |
    |         | C:        |
    |         | B:          |
    +-----------+---------------+
      CASE   CASE          ,   WHEN        ,  CASE      。
    
    

    좋은 웹페이지 즐겨찾기