아래 표 1을 기반으로 새 테이블을 만들고 도시, 국가 및 지역을 기준으로 가장 가까운 일치 항목으로 빈 companyID를 채울 수있는 쿼리를 작성하려고합니다.
표 1은 샘플 표이고 표 2는 예상 출력입니다.
1 번 테이블
Cust | City | Country | Region | CompanyID
ABC | KL | MY | APAC | 123456
ABC | KL | MY | APAC |
ABC | JB | MY | APAC |
ABC | SY | AU | APAC | 778899
ABC | ME | AU | APAC |
GHI | DB | AE | EMEA | 112233
GHI | AD | AE | EMEA |
표 2
Cust | City | Country | Region | CompanyID
ABC | KL | MY | APAC | 123456
ABC | KL | MY | APAC | 123456
ABC | JB | MY | APAC | 123456
ABC | SY | AU | APAC | 778899
ABC | ME | AU | APAC | 778899
GHI | DB | AE | EMEA | 112233
GHI | AD | AE | EMEA | 112233
VLOOKUP처럼 느껴지지만 시작하는 방법을 모르겠습니다. 어떤 도움을 진심으로 감사드립니다.
감사!
하위 쿼리에서 사용하거나 모든 기본값의 인라인보기를 만듭니다. 그런 다음 해당 기본값에 대한 외부 조인.
먼저 위에서 언급 한 것과 동일한 데이터가있는 usr_test_table이라는 테이블을 만들었습니다. 그리고 내 데이터베이스는 오라클이므로 "from dual"로 혼동하지 마십시오. 그것은 한 열에 한 행이있는 오라클의 특별한 테이블입니다.
select t1.cust, t1.city, t1.country, t1.region,
case
when t1.companyid is not null then t1.companyid
else (
select max(companyid)
from usr_test_table t2
where t2.country = t1.country
)
end companyid
from usr_test_table t1
인라인 뷰에 대한 외부 조인에 대한 이전 주석보다 약간 더 간단합니다. 이제 데이터베이스는 select 절에서 하위 쿼리를 허용하므로 이러한 상황은 이러한 방식으로 처리하는 것이 더 간단합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다