0

我试图弄清楚为什么这种语法格式错误,但我没有:

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
4

1 回答 1

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 

在 WHEN 之前带有表达式的 CASE 将该表达式依次与 WHEN 之后的每个表达式进行比较,直到找到匹配项。紧跟在 WHEN 之后的 CASE 检查 WHEN 之后的每个表达式,直到找到一个计算结果为 TRUE 的表达式。在第一种用法中,表达式必须是可比较的。其次,表达式的计算结果必须为 T/F。

于 2012-06-15T20:48:47.737 回答