then 后面的where是什么意思?
else后面少end

解决方案 »

  1.   

    语法
    简单 CASE 函数:CASE input_expression
        WHEN when_expression THEN result_expression
            [ ...n ]
        [ 
            ELSE else_result_expression
        ENDCASE 搜索函数:CASE
        WHEN Boolean_expression THEN result_expression
            [ ...n ]
        [ 
            ELSE else_result_expression
        END参数
    input_expression是使用简单 CASE 格式时所计算的表达式。Input_expression 是任何有效的 Microsoft® SQL Server™ 表达式。 WHEN when_expression使用简单 CASE 格式时 input_expression 所比较的简单表达式。When_expression 是任意有效的 SQL Server 表达式。Input_expression 和每个 when_expression 的数据类型必须相同,或者是隐性转换。 n占位符,表明可以使用多个 WHEN when_expression THEN result_expression 子句或 WHEN Boolean_expression THEN result_expression 子句。THEN result_expression当 input_expression = when_expression 取值为 TRUE,或者 Boolean_expression 取值为 TRUE 时返回的表达式。result expression 是任意有效的 SQL Server 表达式。 ELSE else_result_expression当比较运算取值不为 TRUE 时返回的表达式。如果省略此参数并且比较运算取值不为 TRUE,CASE 将返回 NULL 值。Else_result_expression 是任意有效的 SQL Server 表达式。Else_result_expression 和所有 result_expression 的数据类型必须相同,或者必须是隐性转换。WHEN Boolean_expression使用 CASE 搜索格式时所计算的布尔表达式。Boolean_expression 是任意有效的布尔表达式。 
      

  2.   

    WHERE应该放在表名后面
    另外,CASE只能对值进行处理,如果你要把一段(如where **=....)放在CASE里的话,就只能把整个语句放进EXEC(‘’)里来执行了
      

  3.   

    判断查询where条件,在VC,VB......中完成为好
      

  4.   

    CASE 語法不對,  應該是
         case 值 when 值1 then ... 
                 when 值2 then...
                 else ... end 
    或者 case when 值=值1 then ... 
              when 值=值2 then... else end
    而且像這樣在where 中使用case也不對, 這個例子最好用if語句