无法更新 sql 中的列?

Cannot update a column in sql?

我无法使用以下查询更新我的备注栏

update Customers
set customers.Remarks = remarks_stg.remarks
from 
    (select remarks 
     from remarks_stg) remarks_stg
where customers.Remarks = 'updateme'

查询执行成功,但客户中的 remarks 列未更新。

我正在尝试从 remarks_Stg table 的 remarks 列更新 customers table 中的 remarks 列。

此致

已更新

试试这个:

update Customers
SET customers.Remarks= remarks_stg.remarks
from remarks_stg
where customers.Remarks='updateme'

但它会使用 table remarks_stg 中的第一个值,因此请尝试添加另一个条件,如下所示:

AND remarks_stg.Id = 2

更新客户

SET 备注 = (select 来自 remarks_stg 的备注)

其中备注 = 'updateme'

更新客户

SET 备注 = (select 来自 remarks_stg 的备注 WHERE id = [PARTICULAR ID] )

其中备注 = 'updateme'

您将需要发件人子句中的 "Customers" table 并将其与您的 "remarks_stg" table 合并。将下面的 "SomeColumn" 替换为两个 table 之间匹配的列。

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'

我认为以下查询的数据没有返回。

SELECT * FROM customers
Where customers.Remarks = 'update'

如果数据正在返回,更新就会完成

对了,查询中有一个逻辑错误。您没有指定要从 remarks_stg table.

记录哪条记录

你需要在where条件中指定两个table之间的关系。

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 table 中的第一条记录。

更新

您可以使用 ROW_NUMBER() 执行此操作。您应该从 Customer table.

中写一个唯一的列
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

注意:两个table的关系必须是。如果不是,你必须改变结构。