[英]Query to get closest match value based on other columns
基於下面的表1,我試圖編寫一個查詢,使我可以創建一個新表,並根據城市,國家和地區填寫最匹配的空公司ID。
表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,但不確定如何啟動。 請真誠的感謝您的幫助。
謝謝!
在subquery.or中或與create一起使用所有默認值的內聯視圖。 然后外部聯接到那些默認值。
我首先創建了一個名為usr_test_table的表,該表具有與上述相同的數據。 並且請注意,我的數據庫是oracle,所以請不要對“ from dual”感到困惑。 那是oracle中的一個特殊表,每一行一行。
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子句中使用子查詢,因此這種情況更易於處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.