IF…ELSE (Transact-SQL)
指定 Transact-SQL 语句的执行条件。 如果满足条件,则在 IF 关键字及其条件之后执行 Transact-SQL 语句:布尔表达式返回 TRUE。 可选的 ELSE 关键字引入另一个 Transact-SQL 语句,当不满足 IF 条件时就执行该语句:布尔表达式返回 FALSE。
语法
IF Boolean_expression { sql_statement | statement_block } [ ELSE { sql_statement | statement_block } ]
参数
Boolean_expression
返回 TRUE 或 FALSE 的表达式。 如果布尔表达式中含有 SELECT 语句,则必须用括号将 SELECT 语句括起来。
{ sql_statement| statement_block }
任何 Transact-SQL 语句或用语句块定义的语句分组。 除非使用语句块,否则 IF 或 ELSE 条件只能影响一个 Transact-SQL 语句的性能。
若要定义语句块,请使用控制流关键字 BEGIN 和 END。
注释
IF…ELSE 构造可用于批处理、存储过程和即席查询。 当此构造用于存储过程时,通常用于测试某个参数是否存在。
可以在其他 IF 之后或在 ELSE 下面,嵌套另一个 IF 测试。 嵌套级数的限制取决于可用内存。
示例
下面的示例在 uspGetList 存储过程的输出中使用了 IF…ELSE。 该存储过程在创建存储过程中定义。 在此示例中,该存储过程返回标价低于 700 美元的自行车清单。 这将导致执行第一个 PRINT 语句。
DECLARE @compareprice money, @cost money EXECUTE Production.uspGetList '%Bikes%', 700, @compareprice OUT, @cost OUTPUT IF @cost <= @compareprice BEGIN PRINT 'These products can be purchased for less than $'+RTRIM(CAST(@compareprice AS varchar(20)))+'.' END ELSE PRINT 'The prices for all products in this category exceed $'+ RTRIM(CAST(@compareprice AS varchar(20)))+'.'
评论前必须登录!
注册