任何知道的人都很容易。在TSQL存储过程中,如何编写比较bool值的if语句。习惯于C#的时间过长,我会用花括号,圆括号和各种各样的东西,我觉得我弄错了。
答案 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中只有一行,那么你不需要BEGIN
和END
,但无论如何都可以使用它们。
答案 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');