WITH TMP AS(
SELECT 'PK1' AS PK, 'AAA #SEQ1 BBB #SEQ2' AS STR FROM DUAL UNION ALL
SELECT 'PK2' AS PK, 'CCC #SEQ1 DDD #SEQ2' AS STR FROM DUAL
) , TMP1 AS (
SELECT 'PK1' AS PK, 'SEQ1' AS SEQ, '변경1' AS COMMENT FROM DUAL UNION ALL
SELECT 'PK1' AS PK, 'SEQ2' AS SEQ, '변경2' AS COMMENT FROM DUAL UNION ALL
SELECT 'PK2' AS PK, 'SEQ1' AS SEQ, '변경3' AS COMMENT FROM DUAL UNION ALL
SELECT 'PK2' AS PK, 'SEQ2' AS SEQ, '변경4' AS COMMENT FROM DUAL
)
SELECT A.PK, MAX(A.STR) AS STR
FROM TMP A, TMP1 B
WHERE 1 = 1
AND A.PK, B.PK
GROUP BY A.PK;
이 쿼리를 돌리면
PK1 AAA #SEQ1 BBB #SEQ2
PK2 CCC #SEQ1 DDD #SEQ2
이렇게 결과값이 떨어집니다.
제가 하고 싶은건 #SEQ1, #SEQ2 이렇게 되어 있는 부분을
TMP1테이블의 SEQ필드와 일치 하는 '변경1', '변경2'값으로 값을 치환 하고 싶습니다.
PK1 AAA 변경1 BBB 변경2
PK2 CCC 변경3 DDD 변경4
이런식으로 결과를 뽑고 싶습니다.
#SEQ 값들은 동적이고 10개 이상 많아 질수도 있습니다.
동적으로 치환을 하려고 하는대 몇일을 고민을 해도 도저히 모르겠내요 ㅠㅠ
고수 님들의 도움좀 기다리겠습니다.
감사 합니다. 즐거운 하루 되세요. |