16

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

4

3 回答 3

38
DECLARE @bool BIT = 1

IF @bool = 1
BEGIN
    -- do stuff here
    PRINT 'it was true';
END
ELSE
BEGIN
    -- do other stuff here
    PRINT 'it was not true';
END

如果您在 if 中只有一行,那么您不需要BEGINand END,但无论如何使用它们可能是一个好习惯。

于 2012-06-18T15:35:09.900 回答
3

boolean对应的sql数据类型是bit,1代表真,0代表假,所以:

IF( @Statement=1)
    BEGIN
        SELECT COUNT(*) FROM Table
    END
ELSE
    BEGIN
        SELECT MIN(ID) FROM Table
    END
END
于 2012-06-18T15:34:07.470 回答
3

从 SQL Server 2012 开始,IIF 是为赋值编写 IF THEN ELSE 的简写方式:

    DECLARE @str VARCHAR(10);
    SET @str = IIF(1=1, 'Yes', 'No');
于 2018-08-21T12:08:42.777 回答