2017-10-05 84 views
0

我有這個代碼似乎不能與REPLACE一起使用。我在這裏丟失了什麼SQL Server更新使用WHERE和LIKE

+0

認爲你需要連接你喜歡a + –

+0

定義'不起作用'。更新了多少條記錄?他們是正確的嗎?你有語法錯誤嗎? – Igor

+0

用您正在使用的數據庫標記您的問題。 –

回答

2

你有更大的問題。您需要在FROM子句中定義的update別名,而不是表。

這可能是與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)),'.','')) 
0
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)),'.','')) 

不知道有關更換,但修改其餘代碼如上