case when 문의 드립니다. 0 5 3,188

by 정도경영 [Oracle 기초] [2023.12.07 19:19:52]



WITH   tbl_temp  AS   (
SELECT    'a' TYPE  FROM dual 
UNION ALL
SELECT    'b' TYPE  FROM dual
UNION ALL
SELECT    'ab' TYPE  FROM dual
)
SELECT  CASE  WHEN  type='a' THEN '남자' 
               WHEN  TYPE  = 'b'  OR  TYPE ='ab' THEN  '여자'
                WHEN  TYPE ='ab' THEN  '남자'
            ELSE 'tt'   END  AS  tt  FROM   tbl_temp ;

 

ab의 경우에는  남자 도 리턴  여자도 리턴이 되었으면 합니다. 

가능 할지  문의 드립니다.

 

by pajama [2023.12.07 21:53:13]

구분이 되는 기준이 있어야 될 것 같습니다.. 'ab'는 행복제를 해야겠네요.

어떻게 끼워 맞춘 쿼리입니다.

WITH   tbl_temp  AS   (
SELECT    'a' TYPE  FROM dual UNION ALL
SELECT    'b' TYPE  FROM dual UNION ALL
SELECT    'ab' TYPE  FROM dual
)
SELECT  CASE  WHEN  A.TYPE = 'a'                   THEN '남자' 
              WHEN  A.TYPE = 'b'                   THEN '여자'
              WHEN  A.TYPE = 'ab' AND B.TYPE = 'a' THEN '남자'
              WHEN  A.TYPE = 'ab' AND B.TYPE = 'b' THEN '여자'
        END CASE
from tbl_temp a, 
     (SELECT * FROM tbl_temp WHERE TYPE <> 'ab') b
where A.TYPE <> B.TYPE

 


by 마농 [2023.12.07 23:28:09]

원하는 결과를 표로 보여주세요.


by 정도경영 [2023.12.08 09:04:17]

답변주셔서 고맙습니다.

목적 :   z99라는 상태의 재고의 품목과 수량은   기초재고와  기말 재고 모두에   보여줘야 하는 미션이 있어서 

남여로   예를 들어서 설명 드렸습니다.  

---------------------------------------------------------------------------------------------------------------------------------------

값은   a,b,ab  3개 만 있지만  표기는  남,여,남,여 처럼 아래 와 같이 보이게 하고자 합니다.

TYPE  
------
a      
b       
ab    
   

TYPE  |TYPE_nm
-------------
a       남자  
b       여자  
ab     남자  
ab     여자  


by 마농 [2023.12.08 10:47:11]
WITH tbl_temp AS
(
SELECT 'a' type FROM dual
UNION ALL SELECT 'b'  FROM dual
UNION ALL SELECT 'ab' FROM dual
UNION ALL SELECT 'c'  FROM dual
)
, tbl_code AS
(
SELECT 'a' type, '남자' type_nm FROM dual
UNION ALL SELECT 'b', '여자' FROM dual
)
SELECT a.type
     , NVL(b.type_nm, 'tt') type_nm
  FROM tbl_temp a
  LEFT OUTER JOIN tbl_code b
    ON INSTR(a.type, b.type) > 0
;

 


by 마농 [2023.12.08 11:11:15]

음. 저는 샘플만 보고 답변 드렸는데.
댓글 내용을 보니 제 쿼리가 적용될 수 없는 상황일 수 도 있겠네요.
좀 더 실제에 가까운 예시자료 부탁드립니다.
원본 대비 결과표.

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