仅在返回特定字段时更新SQL Server语句

时间:2017-10-04 11:07:32

标签: sql sql-server

我正在尝试做一个UPDATE语句,其中PRICE_CURRENCY应填充一个' U'只有在填充Initial_Price时,它也可以填充其他字段。我曾尝试在查询中使用EXISTS,但我不知道是否首先检查是否填充了Initial_Price,然后使用' U'更新PRICE_CURRENCY。

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' 

1 个答案:

答案 0 :(得分:2)

问题的方式有点令人困惑,因为问题中的SQL语句不使用EXIST字,并且没有关于表CALYPSO的解释。

如果我正确理解了这个问题,你只想将[Price_Currency]字段设置为'U',当它尚未设置时(我假设它是一个可空字段)并且当[CALYPSO]表中的记录时也将其[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'