나는 3 개의 테이블을 가지고 있는데 하나는 ID 컬럼을 가진 "슈퍼 타입"을 나타낸다. 두 개의 다른 테이블은 상위 유형에 대한 외래 키인 ID 컬럼과 부속 유형별 컬럼이있는 각 부속 유형입니다.어떻게 행을 만들기 위해 어떤 테이블을 조인했는지에 따라 SQL 결과 집합에 결과로 리터럴을 넣으시겠습니까?
모든 데이터를 반환하는 쿼리뿐만 아니라 행이 어떤 테이블에서 왔는지 알려주는 식별자를 사용할 수있는 열이 필요합니다.
따라서, 예를 들어, 내가 어떻게 이것을 수정할 수 있습니다
SELECT * from SUPER S
left outer join SUB_1 S1 on S.ID = S1.ID
left outer join SUB_2 S2 on S.ID = S2.ID
을 나에게 돌려주는이 :
일부 하드 코딩 리터럴 값으로 판별 자 컬럼을 추가 할 것입니다 무언가로ID SUB_COL_1 SUB_COL_2
==== ========= =========
0001 value x NULL
0002 value y NULL
0003 NULL value z
, like :
ID DISCRIMINATOR SUB_COL_1 SUB_COL_2
==== ============= ========= =========
0001 SUBTYPE_1 value x NULL
0002 SUBTYPE_1 value y NULL
0003 SUBTYPE_2 NULL value z
어떤 방식 으로든 데이터 모델을 수정할 수 없습니다. 사실 후에도 NULL을 프로그래밍 방식으로 테스트하여 어떤 후 처리도 수행 할 수 없습니다. 나는 테이블을 그대로 사용하고 위에 나온 정확한 결과 세트를 만들어야합니다. 나는 Oracle 11g를 사용하고 있습니다.
매력처럼 작동합니다. 감사! –
@ 케빈, 항상 도와 드리겠습니다! –