专业编程基础技术教程

网站首页 > 基础教程 正文

SQL SERVER:流程控制语句之—CASE...END(32)

ccvgpt 2024-08-08 13:04:33 基础教程 17 ℃

一、分支结构2:CASE...ELSE...END

1、语法:

SQL SERVER:流程控制语句之—CASE...END(32)

CASE

WHEN 条件1 THEN 结果2

WHEN 条件2 THEN 结果2

........

[ELSE

结果n]

END

2、执行顺序:条件1成立执行结果1,条件2成立执行结果2.....,如果所有的WHEN中的条件都不成立,则执行ELSE的结果。如果ELSE省略并且WHEN的条件表达式的结果都不成立,则CASE语句返NULL

3、例:

1)学生考试成绩评级,>=90为优秀,>=80为良好,>=70为一般,>=60为及格,<60则为不及格

DECLARE @SCORE INT
SET @SCORE=78
SELECT  评分结果=CASE
  WHEN @SCORE>=90 THEN '优秀'
  WHEN @SCORE>=80 THEN '良好'
  WHEN @SCORE>=70 THEN '一般'
  WHEN @SCORE>=60 THEN '及格'
ELSE 
	'不及格'
END
GO

2)查询产品表ProductList里的销售价,<=100的为一般产品,<=200的为金牛产品,<=300的为白金产品,其他则为白金VIP产品。要求查询出的表中增加一列来放“产品评级”

USE MyServer
GO
SELECT *,
CASE 
  WHEN PL_OutPrice<=100 THEN '一般产品'
  WHEN PL_OutPrice<=200 THEN '金牛产品'
  WHEN PL_OutPrice<=300 THEN '白金产品'
ELSE
	'白金VIP产品'
END 产品评级
FROM ProductList
GO

Tags:

最近发表
标签列表