0
두 레코드 병합I 2 개 레코드 다음 한 오라클
Id isVal isVal1
1 Y N
2 Y N
레코드 2
는Id isVal isVal1
2 N Y
3 N Y
필요
실제 레코드이다
Id isVal isVal1
1 Y N
2 Y Y
3 N Y
가입을 사용해야합니까? 이 문제를 어떻게 풀 수 있습니까?
두 레코드 병합I 2 개 레코드 다음 한 오라클
Id isVal isVal1
1 Y N
2 Y N
레코드 2
는Id isVal isVal1
2 N Y
3 N Y
필요
실제 레코드이다
Id isVal isVal1
1 Y N
2 Y Y
3 N Y
가입을 사용해야합니까? 이 문제를 어떻게 풀 수 있습니까?
아니요, 서로의 위에 레코드를 배치하여 union
을 사용해야합니다. 당신이하는 당신이 all
을 제거하는 것, 중복을 제거 할 필요가 없습니다으로
select id, max(isval) as isval, max(isval1) as isval1
from (select id, isval, isval1
from recordset1
union all
select id, isval, isval1
from recordset1
)
group by id
나는 union all
를 사용합니다.
'Y'
이 'N'
보다 크기 때문에 max
이 작동합니다.
'Y'
이 첫 번째 레코드 세트의 값보다 두 번째 레코드 세트의 값보다 덜 중요하다는 가정하에 'N'
이라고 가정합니다.
'Id = 2'에서'isVal'에 대해 원하는 값을 찾으십니까? 레코드 세트 1에 지정된대로 'Y'로 설정하거나 레코드 세트 2에서 'N'으로 설정 하시겠습니까? Recordset 1 값은 항상 Recordset 2 값보다 우선 순위가 있습니까? 또는'Id'가 두 테이블 모두에 존재한다면'Y'는'N'보다 항상 우선 순위를 갖습니다. – Glenn