一个简单的select case写法,试好几遍总是不对。
declare @StepNo char(10)select @StepNo 
    case '00001'
        begin
         .......
        end
    case '00002'
        begin
         .......
        end
end select这种情况该怎么写?

解决方案 »

  1.   


    看不懂!case这样用的:select 前面的其他字段,结果=case  when 字段=‘1’ then ‘ok’
    when 字段=‘2’ then ‘不ok’
    endfrom  tb
      

  2.   

    基本语法都错了,
    select case when @StepNo='00001' then ... when '00002' then ... end
      

  3.   


    --弱弱的回答下
    --如果是值判断,用case
    select case @StepNo WHEN '00001' THEN '情况1'
                        WHEN '00002' THEN '情况2' END--如果你是想根据@StepNo不同执行不同的select语句
    --那么就用if else
    IF @StepNo = ‘00001’
    BEGIN
     select...
    END
    ELSE IF @StepNo = '00002'
    BEGIN
     select ...
    END
    ELSE
    BEGIN
     SELECT...
    END
      

  4.   


    --case when基本语法
    SELECT <myColumnSpec> = 
    CASE 
    WHEN <A> THEN <somethingA> 
    WHEN <B> THEN <somethingB> 
    ELSE <somethingE> 
    END 
    --or
    select col,
         case when @StepNo='00001' then ...when StepNo='00002' then ..else ...end