玖叶教程网

前端编程开发入门

SQL SERVER:流程控制语句之—IF...ELSE(31)

一、分支结构1:IF...ELSE

1、语法:

IF (条件)

BEGIN

语句或语句块1

END

[ELSE

BEGIN

语句或语句块2

END]

2、特点:

1)ELSE并不一定是必须的;

2)如果条件为真,执行语句或语句块1,条件为假则执行语句或语句块2,无论哪种情况,最后都要执行IF..ELSE语句下的一条语句;

3)IF...ELSE可以嵌套;

4)如果只有一条语句BEGIN..END可以省略。

3、例:

1)判断两个数的大小,并输出判断结果

DECLARE @X INT=66,@Y INT =88
IF @Y>@X
  BEGIN
    PRINT '结果为:X大于Y'
    PRINT '程序结束'
  END
ELSE
		PRINT 'X小于Y'
GO
--注:上例只有一句语句可省略BEGIN..END,超过一句必须加上,否则程序报错。

2)查询销售额最高的员工姓名和金额,如果销售金额大于1000,则奖励200,将结果以消息的方式输出

USE MyServer
GO
DECLARE @MaxPrice INT, @Name  VARCHAR(10)
--将查询出的销售额最大值赋给变量@MaxPrice
SELECT @MaxPrice=MAX(S.S_Amount*P.PL_OutPrice) 
FROM SalesList S 
JOIN Employee E ON S.E_Id=E.E_Id
JOIN ProductList P ON P.PL_Id=S.PL_Id

--将查询出的销售额最大值所对应的业务员赋给变量@Name
SELECT @Name=X.姓名 FROM
(SELECT E.E_Name 姓名,MAX(S.S_Amount*P.PL_OutPrice) 销售额
FROM SalesList S 
JOIN Employee E ON S.E_Id=E.E_Id
JOIN ProductList P ON P.PL_Id=S.PL_Id
GROUP BY E.E_Name) X
WHERE X.销售额 =@MaxPrice --查询出最大销售额的员工姓名

--判断销售金额是否大于1000,并输出判断结果
IF @MaxPrice>1000
  BEGIN
    PRINT  '销售额最大的员工姓名:'+@Name+',销售金额:'
      +CAST(@MaxPrice AS VARCHAR(20))
    PRINT '销售金额已超1000元,奖励金额:'+CONVERT(VARCHAR(10),@MaxPrice)+'元'
  END
ELSE
  BEGIN
    PRINT  '销售额最大的员工姓名:'+@Name+',销售金额:'
      +CAST(@MaxPrice AS VARCHAR(20))
    PRINT '销售金额未超1000元,无奖励!'
  END
GO

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言