[SqlServer]sql编程7-if else的使用

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 } ]

SqlServer if else使用方法及示例代码

参数

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)))+'.'

分享到:更多 ()

抢沙发

评论前必须登录!