我有一個在表上運行的查詢,並拉出2個字段。 我想帶他們,並使用UPDATE語句,使用它們的值作爲WHERE和SET。如何在SQL中使用嵌套查詢進行更新
例如:
select name, address from xxx.....
我要取的名字&地址,這
update yyy
set fullname=(name I pulled before)
where address=(address I pulled before)
感謝
我有一個在表上運行的查詢,並拉出2個字段。 我想帶他們,並使用UPDATE語句,使用它們的值作爲WHERE和SET。如何在SQL中使用嵌套查詢進行更新
例如:
select name, address from xxx.....
我要取的名字&地址,這
update yyy
set fullname=(name I pulled before)
where address=(address I pulled before)
感謝
給做這樣的嘗試
Update t
Set t.yyyy = q.Name
From TableToUpdate t
Join AddressTable q on q.Address = t.Address
這是一個ssumes該地址字段(您要加入的)是一個與地址字段表中的一個關係要更新
這也可以寫成
Update TableToUpdate
Set yyyy = q.Name
From AddressTable q
WHERE q.Address = TableToUpdate.Address
由於更新表是訪問FROM/WHERE子句,除了它不能被別名。
如果您使用SQL Server 2005或達(你沒有指定....),你可以使用一個公用表表達式(CTE):
;WITH UpdateData AS
(
SELECT
FullName,
Address
FROM
dbo.SomeTableYouUse
WHERE
(some critiera)
)
UPDATE dbo.yyy
SET fullname = ud.FullName
FROM UpdateData ud
WHERE address = ud.Address
你的CTE在裏面,你可以計算出如何確定您的FullName
和Address
,並且CTE是一種「內聯」視圖,僅對下一個語句有效 - 在這種情況下,對於UPDATE
聲明。
我不明白問題是什麼......你能給出一個更具體的例子,用一些代碼? –
這兩個表結構都需要什麼是與這兩個表 –
關係的字段的名稱請解釋您的需要提供您的表結構或類似的東西解釋的東西! – Harish