在列别名上加入时更新表中的表

时间:2011-09-14 21:55:58

标签: sql sql-server sql-server-2008 alias sql-update

我很抱歉我的SQL功夫达不到标准,但这似乎是一项我似乎无法完成的基本任务。

我在Sql Server 2008中有两个表

tblBoxAddress - 地址 - 压缩 - 纬度 --Longitude

tblUpdatedDated - 地址 - 纬度 --longitude

我必须使用lat更新tblBoxAddress的纬度和经度。而且很长。从tblUpdatedData通过匹配地址。问题是tblUpdatedData.Address包含邮政编码。在tblBoxAddress中,它分为两个单独的列。

我已经能够使select语句正常工作

select * from tblUpdatedData t
inner join (
Select Address + ' ' + zip As 'full_address', Latitude, Longitude from tblBoxAddress) d
on d.full_address = t.Address

但是,我无法弄清楚如何在更新语句中组合tblBoxAddress的地址和zip。就我而言:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip as 'full_address'

感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

您不需要在update子句中使用别名。例如尝试:

update d
set d.Latitude = t.latitude, d.Longitude = t.longitude
FROM tblBoxAddress d inner join 
tblUpdatedData t on t.Address = d.Address + ' ' + d.zip;