Tsql 存储过程T-SQL If布尔检查

Tsql 存储过程T-SQL If布尔检查,tsql,if-statement,Tsql,If Statement,这对任何知道的人来说都很容易。在TSQL存储过程中,如何编写if语句来比较布尔值。习惯了C#太长了,我用了花括号、圆括号和各种各样的括号,我想我弄错了。布尔对应的sql数据类型是位,表示1表示真,0表示假,因此: IF( @Statement=1) BEGIN SELECT COUNT(*) FROM Table END ELSE BEGIN SELECT MIN(ID) FROM Table END END 如果在If中只有一行

这对任何知道的人来说都很容易。在TSQL存储过程中,如何编写if语句来比较布尔值。习惯了C#太长了,我用了花括号、圆括号和各种各样的括号,我想我弄错了。

布尔对应的sql数据类型是位,表示1表示真,0表示假,因此:

IF( @Statement=1)
    BEGIN
        SELECT COUNT(*) FROM Table
    END
ELSE
    BEGIN
        SELECT MIN(ID) FROM Table
    END
END

如果在If中只有一行,则不需要使用
开始
结束
,但无论如何使用它们可能是一种良好的做法。

从SQL Server 2012 IIF开始是编写If-then-ELSE的简写方式,用于分配:

    DECLARE @str VARCHAR(10);
    SET @str = IIF(1=1, 'Yes', 'No');

其他人去哪里?在结尾之后还是之前?我在答案中添加了一个ELSE子句-它在结尾之后。在那里有一个额外的
END
IF…ELSE…
不会以
END
关键字终止。您只需要在每个
BEGIN…END
blockDo中使用它们。请注意,IIF仅从SQL Server 2012开始提供。
    DECLARE @str VARCHAR(10);
    SET @str = IIF(1=1, 'Yes', 'No');