我有两个表,table1和table2具有以下结构
表1:
ID Location Date
----------------------------
1 abc 2014-6-3
2 xyz 2013-6-5
表2:
ID Location Date
----------------------
1 abc NULL
2 xyz NULL
3 hgf 2012-9-8
我需要编写一个CTE,根据条件Table2.Date
table1.Date
列中的值更新where table1.location = table2.location
列
有人可以帮助我,因为我对CTE概念很陌生
答案 0 :(得分:1)
您可以为cte中的新值指定别名,然后使用该别名更新该值:
WITH cte AS
(
SELECT
t2.Date
,t1.Date AS NewDate
FROM #Table1 t1
JOIN #Table2 t2
ON t1.Location=t2.Location
)
UPDATE cte
SET Date=NewDate;
答案 1 :(得分:0)
即使没有CTE,你也可以这样做:。
UPDATE TABLE2 T2
SET
T2.DATE = (SELECT T1.DATE FROM TABLE1 T1 WHERE T1.LOCATION = T2.LOCATION)
WHERE T2.DATE IS NOT NULL