2012-06-15 46 views
0

我試圖找出爲什麼這個語法是畸形的,我不知道它:更新與case語句的語法問題

update Entry 
set Name = Case charindex('/', reverse(Name)) 
       when charindex('/', reverse(Name)) > 0 then right(Name, charindex('/', reverse(Name)) -1) 
       when charindex('/', reverse(Name)) < 0 then Name 
      End 

回答

2

試試這個:

update Entry 
set Name = Case 
       when charindex('/', reverse(Name)) > 0 then right(Name, charindex('/', reverse(Name)) -1) 
       when charindex('/', reverse(Name)) < 0 then Name 
      End 

編輯:或本:

update Entry 
set Name = Case SIGN(charindex('/', reverse(Name))) 
       when 1 then right(Name, charindex('/', reverse(Name)) -1) 
       when -1 then Name 
      End 

CASE用WHEN之前的表達式比較表達式與每個表達式依次在WHEN之後直到找到匹配。 CASE緊隨其後檢查WHEN後的每個表達式,直到找到一個計算結果爲TRUE的表達式。在第一種用法中,表達式必須具有可比性。在第二種情況下,表達式必須評估爲T/F。