DECLARE @a INT
set @a = 4
select
CASE
   WHEN @a = 1 THEN  '1'
   WHEN @a = 2 THEN  '2'
   WHEN @a = 3 THEN  '3'
   WHEN @a = 4 THEN  '4'
   WHEN @a = 5 THEN  '5'
   ELSE  '大于5'
END--(无列名)
--4

解决方案 »

  1.   

    或者
    DECLARE @a INT
    set @a = 4select
    CASE @a
       WHEN  1 THEN  '1'
       WHEN  2 THEN  '2'
       WHEN  3 THEN  '3'
       WHEN  4 THEN  '4'
       WHEN  5 THEN  '5'
       ELSE  '大于5'
    END
      

  2.   

    赋值给@b变量可以这么写
    DECLARE @a INT
    Declare @b int
    set @a = 4set @b=
    (
    select
    CASE @a
       WHEN  1 THEN  '1'
       WHEN  2 THEN  '2'
       WHEN  3 THEN  '3'
       WHEN  4 THEN  '4'
       WHEN  5 THEN  '5'
       ELSE  '大于5'
    END
    )
    print @b
      

  3.   

    谢谢chz415767975大侠的帮助,进一步问一下:如果每一个Then后要执行多条语句,就是下面的意思,请问这样的需求该怎么写呢?DECLARE @a INT
    set @a = 4
    select
    CASE
       WHEN @a = 1 THEN 
           begin
              select * from TableName1
              其它处理
           end
       WHEN @a = 2 THEN
           begin
              select * from TableName2
              其它处理
           end
       WHEN @a = 3 THEN  '3'
       WHEN @a = 4 THEN  '4'
       WHEN @a = 5 THEN  '5'
       ELSE  '大于5'
    END
      

  4.   

    只能做这种处理,你楼上这个貌似不能实现
    DECLARE @a INT
    DECLARE @b INT
    set @b=3
    set @a = 4select
    CASE
       WHEN @a = 1 THEN  @a*1+@b
       WHEN @a = 2 THEN  @a*2+@b
       WHEN @a = 3 THEN  @a*3+@b
       WHEN @a = 4 THEN @a*4+@b
       WHEN @a = 5 THEN @a*5
       ELSE  0
    END 
      

  5.   

    谢谢大侠出手相助,SQL2000里没有能实现这种需求的多分支语句了吗?if 除外。