我有一个情况,我在哪里有一个表(tbl1),并为此添加了一个列,该列当前都为null。我想使用更新语句来填充此列,其中包含连接在一起的3个其他列的值。这些其他列中的1列可以正常使用,但是其他两列具有需要与另一个表(tbl2)连接以根据tbl2下面的表样本查找单个字符关联代码的值。来自tbl2的CostType和RefType存在于tbl1中,但我想将CostCode和RefCode带到tbl1的空列。我还展示了我尝试使用Advantage SQL Architect的内容。但是看不到让它发挥作用。
update tbl1
set emptycolumn=tbl.column1+tbl2.costcode+tbl2.refcode
from tbl1 left join tbl2 on (tbl1.costtype=tbl2.costtype)
left join tbl2 on (tbl1.reftype=tbl2.reftype)
CostCode CostType RefCode RefType
A Apportioned Cost E EmployeeID
J Funding Adjustment I Invoice
G Grant G Grant Recipient
M Grant Management L LearnRefNumber
O Other Costs N CompanyName
E Staff Expenses O Other
F Staff Full Time C Authorised Claims
P Staff Part Time A Audit Adjustment
U Unit Cost
D Unit Cost Deduction
S Start Payment
C Completion Payment
答案 0 :(得分:0)
我相信你的语法还可以,所以我猜测值仍为NULL
。如果是这样,您可能只需要coalesce()
:
update tbl1
set emptycolumn = (coalesce(tbl.column1, 0) + -- not sure if it starts as NULL
coalesce(tbl2.costcode, 0) +
coalesce(tbl2.refcode, 0)
)
from tbl1 left join
tbl2
on tbl1.costtype = tbl2.costtype left join
tbl2
on tbl1.reftype = tbl2.reftype;
如果您打算使用字符串连接,请使用''
而不是0
。