SQL 使用 WHERE 和 LIKE 更新服务器

SQL Server Update using WHERE and LIKE

我的这段代码似乎不适用于 REPLACE。我错过了什么吗

UPDATE EMIR
SET Series = CL.Underlying_Security_Name
FROM EMIR e
INNER JOIN CALYPSO cl
    ON e.Internal_ID = cl.Trade_ID
    AND e.Internal_ID_Type = 'CL'
    WHERE cl.Underlying_Security_Name like 'CMBX.NA.%'REPLACE((SUBSTRING(REPLACE(Underlying_Security_Name,'CMBX.NA.',''),CHARINDEX('.',REPLACE(Underlying_Security_Name,'CMBX.NA.',''))+1,2)),'.',''))

你有一个更大的问题。您需要 update 别名 FROM 子句中定义,而不是 table。

您的 replace() 问题可能需要字符串连接:

UPDATE e
    SET Series = CL.Underlying_Security_Name
FROM EMIR e INNER JOIN
     CALYPSO cl
     ON e.Internal_ID = cl.Trade_ID AND e.Internal_ID_Type = 'CL'
WHERE cl.Underlying_Security_Name like 'CMBX.NA.%' + REPLACE((SUBSTRING(REPLACE(Underlying_Security_Name,'CMBX.NA.',''), CHARINDEX('.', REPLACE(Underlying_Security_Name,'CMBX.NA.',''))+1,2)),'.',''))
UPDATE emir
    SET Series = (select CL.Underlying_Security_Name
FROM EMIR e, 
     CALYPSO cl
     Where
 e.Internal_ID(+)  = cl.Trade_ID AND e.Internal_ID_Type = 'CL'
And cl.Underlying_Security_Name like 'CMBX.NA.%'REPLACE((SUBSTRING(REPLACE(Underlying_Security_Name,'CMBX.NA.',''),CHARINDEX('.',REPLACE(Underlying_Security_Name,'CMBX.NA.',''))+1,2)),'.',''))

不确定替换但修改上面的其余代码