我正在編寫sql來執行一些數據遷移和操作。我正在編寫一些從源數據映射到目標數據的複雜邏輯。基本上,來自源的兩個字段將映射到目標中的一個字段,但顯然某些字段優先。我的邏輯看起來有點像這樣:Case Statement - 每個表中的列名必須是唯一的
case
when d.PURPOSE_NAME = 'Downsize' and (a.DEAL_TYPE_NAME <> '30-Day Letter' and a.DEAL_TYPE_NAME <> 'ACL' and a.DEAL_TYPE_NAME <> 'Assignment') then 'Renewal'
when d.PURPOSE_NAME = 'Early Renewal' and (a.DEAL_TYPE_NAME <> '30-Day Letter' and a.DEAL_TYPE_NAME <> 'ACL' and a.DEAL_TYPE_NAME <> 'Assignment') then 'Renewal'
--- more
end as Deal_Type__c,
case
when d.PURPOSE_NAME = 'Downsize' and (a.DEAL_TYPE_NAME <> '30-Day Letter' and a.DEAL_TYPE_NAME <> 'ACL' and a.DEAL_TYPE_NAME <> 'Assignment') then 'Downsize'
when d.PURPOSE_NAME = 'Early Renewal' and (a.DEAL_TYPE_NAME <> '30-Day Letter' and a.DEAL_TYPE_NAME <> 'ACL' and a.DEAL_TYPE_NAME <> 'Assignment') then 'Early Renewal'
--- more
end as Deal_SubType__c,
-- these values take precedence
case
when a.DEAL_TYPE_NAME = '30-Day Letter' then 'Amendment'
when a.DEAL_TYPE_NAME = 'ACL' then 'Amendment'
when a.DEAL_TYPE_NAME = 'Assignment' then 'Amendment'
end as Deal_Type__c,
case
when a.DEAL_TYPE_NAME = '30-Day Letter' then 'Option to Relet'
when a.DEAL_TYPE_NAME = 'ACL' then 'Termination'
when a.DEAL_TYPE_NAME = 'Assignment' then 'Assignment'
end as Deal_SubType__c,
這一邏輯對我來說很有意義,但我得到的錯誤:
Column names in each table must be unique. Column name 'Deal_Type__c' in table 'Opportunity' is specified more than once.
如何使用TSQL兩個領域在我的源數據映射到一個字段在我的目的地表中使用case聲明?
所有這些案件都在SELECT子句? –
讓我猜** ** SELECT ... INTO機會**? – lad2025
@ lad2025 yes確切 – logeyg