一、使用IF/ELSE关键字。
IF...ELSE 指定 Transact-SQL 语句的执行条件。如果满足条件,则在 IF 关键字及其条件之后执行 Transact-SQL 语句:布尔表达式返回 TRUE。可选的 ELSE 关键字引入另一个 Transact-SQL 语句,当不满足 IF 条件时就执行该语句:布尔表达式返回 FALSE。
1、语法
IF Boolean_expression
{ sql_statement | statement_block }
[ ELSE
{ sql_statement | statement_block } ]
2、参数
Boolean_expression
返回 TRUE 或 FALSE 的表达式。如果布尔表达式中含有 SELECT 语句,则必须用括号将 SELECT 语句括起来。
{ sql_statement | statement_block }
任何 Transact-SQL 语句或用语句块定义的语句分组。除非使用语句块,否则 IF 或 ELSE 条件只能影响一个 Transact-SQL 语句的性能。
若要定义语句块,请使用控制流关键字 BEGIN 和 END。
3、示例
假设有一学生表(student),表中有两列为名称(name)和年龄(age):
IF((SELECT COUNT(name) FROM student WHERE name='张三')>0)
BEGIN
UPDATE student SET age='22' WHERE name='张三'
END
ELSE
INSERT INTO student (name,age) VALUES ('张三','22')
二、使用CASE语句。
【CASE】语句主要有以下两种格式
格式1
Case <算术表达式>
When<算术表达式> then <算术表达式>
........................
When<算术表达式> then <算术表达式>
[Else <算术表达式>]
End
格式2:
Case
When<算术表达式> then <算术表达式>
...........................
When<算术表达式> then <算术表达式>
[Else <算术表达式>]
End
例:给学生的成绩评定等级
>=85优秀
>=70 良好
>=60 及格
其他 不及格
Select 姓名,成绩,
Case
When 成绩>=85 then ’优秀’
When 成绩>=70 then ‘良好’
When 成绩>=60 then ‘及格’
Else ‘不及格’
End as 等级
From 学生表