在update子句中使用Case语句 - Sybase

时间:2013-01-01 07:24:34

标签: sql sql-update case

以下是sybase代码。有人可以看到以下是否正确。我想我错过了某处的语法

    declare @test  varchar(32)
    select @test="/data/dump/team/"

    update link
    set link.value=
     case when @test=substring(link.value,1,17)
                   then @test
          when  @test != substring(link.value,1,17)
                      value
    end 
    where link.value != ""
    and link_id=0 and row_id = 462135

因为它给我以下错误:“第10行关键字结束附近的语法不正确。”

请有人帮我解释语法。

2 个答案:

答案 0 :(得分:5)

尝试在第二种情况下添加“then”:

declare @test  varchar(32)
    select @test="/data/dump/team/"

    update link
    set link.value=
     case when @test=substring(link.value,1,17)
                   then @test
          when  @test != substring(link.value,1,17)
                   then value
    end 

答案 1 :(得分:0)

为什么不简单地为第二个“何时”做一个“其他”?