mysql 쿼리 case문 질문드립니다 0 2 1,235

by 메밀묵도토리묵 [SQL Query] mariadb dbeaver [2022.07.29 11:51:36]


A B
0 1
1 1
1  
0  
  1
  0

위의 테이블을 example_table에서 A컬럼을 select 하는데, A의 값이 없으면, 같은 줄의 B의 컬럼을 나오게 하고, 0은 '사과', 1은 '수박'으로 표현해주고 십습니다..

A
사과
수박
수박
사과
수박
사과

case문을 이용해서 짜려고 했는데, 글자로 바꾸는 거는 아래처럼 쉽게 할 수 있겠는데, 위의 값이 없을 때, B컬럼 데이터를 select하는 것을 잘 모르겠습니다.. 

case

    when (A = '0') then '사과'

    when (A = '1') then '수박'

    end as A

      from table_example

by 우리집아찌 [2022.07.29 12:09:44]
-- MYSQL이 없어서 ORACLE로 구현했습니다.

WITH T AS (
SELECT '0' A  ,'1'	B FROM DUAL UNION ALL
SELECT '1' A  ,'1'	B FROM DUAL UNION ALL
SELECT '1' A  ,''	B FROM DUAL UNION ALL
SELECT '0' A  ,''	B FROM DUAL UNION ALL
SELECT ''  A  ,'1'	B FROM DUAL UNION ALL
SELECT ''  A  ,'0'	B FROM DUAL 
)

SELECT CASE  WHEN A = '1' THEN '수박'
             WHEN A = '0' THEN '사과'
             WHEN A IS NULL AND B = '1'  THEN '수박'
             WHEN A IS NULL AND B = '0'  THEN  '사과'
     END FRUIT_NM
  FROM T 
  

 


by 마농 [2022.08.01 08:45:22]
WITH t AS
(
SELECT 0 a, 1 b
UNION ALL SELECT 1, 1
UNION ALL SELECT 1, null
UNION ALL SELECT 0, null
UNION ALL SELECT null, 1
UNION ALL SELECT null, 0
)
SELECT a, b
     , CASE IFNULL(a, b)
       WHEN 0 THEN '사과'
       WHEN 1 THEN '수박'
        END c
  FROM t
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입