SQL Server判断语句(IF ELSE/CASE WHEN )

执行顺序是 – 从上至下 – 从左至右 --,所当上一个条件满足时(无论下面条件是否满足),执行上个条件,当第一个条件不满足,第二个条件满足时,执行第个二条件


1、IF ELSE

不能用在SELECT中,只能是块,比如:

IF …

BEGIN

…(代码块)

END

ELSE (注意这里没有ELSE IF,要实现只能在下面的块中用IF判断)

BEGIN

…(代码块)

END

例:

  • declare @num int --定义变量
    set @num=1 --赋值变量
    if(@num>10)
    begin
    select * from 表1
    end
    else
    begin
    if(@num<0)
    select Top(20) * from 表2
    else
    print @num
    end

2、CASE WHEN THEN ELSE END

可以在SELECT中使用,但是要包括END结尾

CASE …

WHEN … (条件/代码块) THEN …(返回值/case when then else end)

ELSE …(可省略)

END

例:

  • declare @num int --定义变量
    set @num=111 --赋值变量
    select @num,
    case
    when @num<=100 then case
    when @num>=80 then ‘A’
    when @num>=60 then ‘B’
    else ‘C’ end
    when @num>=200 then ‘优秀’
    else ‘haha’
    end
原文地址:https://www.cnblogs.com/derekhan/p/13789123.html