存储过程T-SQL如果是布尔检查

时间:2012-06-18 15:32:47

标签: tsql if-statement

任何知道的人都很容易。在TSQL存储过程中,如何编写比较bool值的if语句。习惯于C#的时间过长,我会用花括号,圆括号和各种各样的东西,我觉得我弄错了。

3 个答案:

答案 0 :(得分:28)

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中只有一行,那么你不需要BEGINEND,但无论如何都可以使用它们。

答案 1 :(得分:3)

boolean的相应sql数据类型是bit,意思是1代表true,0代表false,所以:

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

答案 2 :(得分:2)

从SQL Server 2012 IIF开始是编写IF THEN ELSE进行分配的简写方式:

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