我的问题有些概念化。
我有一个关于SQL的过程,我将几个表连接在一起。例如:“mkt_Original”包含代码(A1,A3等),而“mkt_Desc”包含描述符(Aruba,Argentina等)。它们由内部联接连接并添加到临时表中:
SELECT CountryDesc, ColumnX into mkt_Temp
FROM mkt_Original
INNER JOIN mkt_Desc ON Mkt_Original.CountryCode = mkt_Desc.CountryCode
生成临时表后,我会根据其他列(ColumnX)的值对国家/地区代码进行一些更改。例如:
UPDATE mkt_Temp
SET mkt_Temp.CountryCode = A3
WHERE mkt_Temp.ColumnX = 3
然而,一旦我完成所有更新,我很好奇国家“描述”将如何更新(因为现在是另一个国家代码)。例如,如果最初存储了值A4,它将带回日本,当我更新到A3时,它应该说中国。
我是否必须在临时表和所有其他表之间运行另一个INNER JOIN查询,还是有更有效的方法?我正在阅读有关触发器的内容,但我不确定这种情况会是怎样的。任何触发器的帮助或代码都非常有用!
提前感谢您的时间。
答案 0 :(得分:0)
如果我是你,如果没有很多变化,我将在连接条件中写一个案例陈述
SELECT CountryDesc, ColumnX into mkt_Temp
FROM mkt_Original
INNER JOIN mkt_Desc
ON (case when Mkt_Original.CountryCode = (case
when ColumnX = 3 then 'A3' else
mkt_Desc.CountryCode end)