我正在尝试做一个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'
答案 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'