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의 경우에는 남자 도 리턴 여자도 리턴이 되었으면 합니다.
가능 할지 문의 드립니다.
구분이 되는 기준이 있어야 될 것 같습니다.. '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
원하는 결과를 표로 보여주세요.
답변주셔서 고맙습니다.
목적 : z99라는 상태의 재고의 품목과 수량은 기초재고와 기말 재고 모두에 보여줘야 하는 미션이 있어서
남여로 예를 들어서 설명 드렸습니다.
---------------------------------------------------------------------------------------------------------------------------------------
값은 a,b,ab 3개 만 있지만 표기는 남,여,남,여 처럼 아래 와 같이 보이게 하고자 합니다.
TYPE
------
a
b
ab
TYPE |TYPE_nm
-------------
a 남자
b 여자
ab 남자
ab 여자
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
;
음. 저는 샘플만 보고 답변 드렸는데.
댓글 내용을 보니 제 쿼리가 적용될 수 없는 상황일 수 도 있겠네요.
좀 더 실제에 가까운 예시자료 부탁드립니다.
원본 대비 결과표.