只有当返回一个特定的字段时更新SQL Server语句

问题描述:

我正在尝试执行一个UPDATE语句,其中PRICE_CURRENCY应该只填充Initial_Price时用'U'填充,它也可以填充其他字段。我试图在查询中使用EXISTS,但我不知道是否会首先检查Initial_Price是否已填充,然后使用'U'更新PRICE_CURRENCY。只有当返回一个特定的字段时更新SQL Server语句

UPDATE EMIR 
SET Price_Currency = 'U' 
from EMIR E 
     INNER JOIN CALYPSO cl 
     ON e.Internal_ID = cl.Trade_ID 
    AND e.Internal_ID_Type = 'CL' 
WHERE cl.Initial_Price = 'P' 
+2

编辑你的问题,并提供样本数据和预期的结果。 –

在此提出问题的方式是有点混乱,如问题SQL语句不使用则Word并没有关于表CALYPSO没有解释。

如果我正确理解了这个问题,只有在尚未设置[我假设它是可空字段的情况下]以及[CALYPSO]中的记录设置为[U]时,[Price_Currency]表的[Initial_Price]字段也设置为'P'。

尝试以下查询: -

UPDATE EMIR 
    SET Price_Currency = 'U' 
    FROM EMIR E 
     INNER JOIN CALYPSO cl ON e.Internal_ID = cl.Trade_ID 
WHERE 
    cl.Initial_Price = 'P' 
    AND E.Price_Currency IS NULL 
    AND e.Internal_ID_Type = 'CL'