我无法使用以下查询更新我的备注栏
update Customers
set customers.Remarks = remarks_stg.remarks
from
(select remarks
from remarks_stg) remarks_stg
where customers.Remarks = 'updateme'
查询已成功执行,但客户中的remarks
列未更新。
我正在尝试从remarks
表的customers
列更新remarks
表中的remarks_Stg
列。
此致
答案 0 :(得分:1)
尝试使用:
update Customers
SET customers.Remarks= remarks_stg.remarks
from remarks_stg
where customers.Remarks='updateme'
但是它会使用表remarks_stg中的第一个值,所以尝试添加另一个这样的条件:
AND remarks_stg.Id = 2
答案 1 :(得分:1)
更新客户
SET Remarks =(从remarks_stg中选择备注)
备注=' updateme'
OR
更新客户
SET Remarks =(从remarks_stg选择备注WHERE id = [PARTICULAR ID])
备注=' updateme'
答案 2 :(得分:1)
您将需要"客户" From子句中的表格,并将其加入" remarks_stg"表。替换" SomeColumn"下面列出了两个表之间的列匹配。
update Customers
set customers.Remarks = remarks_stg.remarks
from Customers
Inner Join
(select remarks
from remarks_stg) remarks_stg
On Customers.SomeColumn = remarks_stg.SomeColumn
where customers.Remarks = 'updateme'
答案 3 :(得分:1)
我认为来自以下查询的数据没有返回。
SELECT * FROM customers
Where customers.Remarks = 'update'
如果数据正在返回,则更新将完成
顺便说一句,查询中存在逻辑错误。您没有指定要从remarks_stg
表中记录哪条记录。
您需要在where条件中指定两个表之间的关系。
Update Customers
Set customers.Remarks = remarks_stg.remarks
From
(Select remarks, YourRelationshipColumn from remarks_stg) remarks_stg
Where
Customers.Remarks = 'updateme' AND
Customers.YourRelationshipColumn = Remarks_Stg.YourRelationshipColumn
如果您未指定关系,将检索remarks_stg
表中的第一条记录。
<强>更新强>
您可以使用ROW_NUMBER()
执行此操作。您应该从Customer
表中编写一个唯一的列。
UPDATE Customers
SET Remarks = RESULT.remarks
FROM
(
SELECT A.CustomerID, B.remarks
FROM
(SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RowId, * FROM Customers) A INNER JOIN
(SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) RowId, * FROM remarks_stg) B ON A.RowId = B.RowId
) RESULT
WHERE
Customers.CustomerID = RESULT.CustomerID
注意:两个表之间的关系必须是。如果没有,你必须改变结构。