天天看点

SQL流程控制语句

 IF-ELSE关键字

IF(条件)

    语句或语句块

ELSE

语句或语句块用BEGIN...END表示

   BEGIN

          语句1

          语句2

   END

例如:

DECLARE @test INT 

SET @test=1

SELECT @test=avg(score) FROM  stu WHERE stu.name='lilu'

IF(@test=1)

PRINT @test

BEGIN

 IF exists(SELECT score FROM  stu WHERE stu.name='aa')

 BEGIN

 DELETE  FROM  stu  WHERE  stu.name='aa' and score=99

 END

 INSERT INTO  stu VALUES('aa',99)

 SELECT score FROM  stu 

 WHERE name='aa'

END

<a href="https://s1.51cto.com/wyfs02/M00/06/97/wKiom1m6gUiitY0nAADVzlyYsWQ316.jpg-wh_500x0-wm_3-wmp_4-s_1208296753.jpg" target="_blank"></a>

case关键字

case:

CASE

          WHEN 条件1 THEN 结果1

          WHEN 条件2 THEN 结果2

create table ss

(

 name varchar(10),

 score float

 )

 insert into ss values('小白',99)

 insert into ss values('小黑',77)

 insert into ss values('小李',58)

SELECT name,

  score=CASE

             WHEN score&lt;60 THEN 'E'

             WHEN score BETWEEN 60 AND 69 THEN 'D'

             WHEN score BETWEEN 70 AND 79 THEN 'C'

             WHEN score BETWEEN 80 AND 89 THEN 'B'

             ElSE    'A'

             END

FROM ss

WHILE 关键字

WHILE (条件)

     语句或语句块

     [BREAKE]

DECLARE @test  INT 

SET @test=2

WHILE (@test&lt;20)

  SET @tesT=@test+2

  IF(@test&lt;&gt;7)

  BEGIN

  PRINT @test

  IF(@test=18)

  BREAK

IF (@test=7)

CONTINUE

本文转自 Linux_woniu 51CTO博客,原文链接:http://blog.51cto.com/linuxcgi/1965331