SQL中有关if-else语句的语法错误

SQL中有关if-else语句的语法错误,sql,sql-server,tsql,Sql,Sql Server,Tsql,关于else语句的语法,我有一个错误 这是我的密码 DECLARE @var VARCHAR(20) = (SELECT TOP 1 name FROM store2) DECLARE @i int = 1 DECLARE @incr int DECLARE @y VARCHAR(20) WHILE @i < 5 BEGIN SET @y = (SELECT name FROM store1 WHERE id = @i); IF @y = @var

关于else语句的语法,我有一个错误

这是我的密码

 DECLARE @var VARCHAR(20) = (SELECT TOP 1 name FROM store2)

 DECLARE @i int = 1
 DECLARE @incr int
 DECLARE @y VARCHAR(20)
 WHILE @i < 5
 BEGIN
     SET @y = (SELECT name FROM store1 WHERE id = @i);    
     IF @y = @var
     SET @incr = (SELECT count FROM store1 WHERE id = @i)+1
     PRINT N'TRUE';

     ELSE
     PRINT 'FALSE';



 SET @i = @i + 1
 END
适当缩进一点,错误就会变得非常明显:

 DECLARE @var VARCHAR(20) = (SELECT TOP 1 name FROM store2)

 DECLARE @i int = 1
 DECLARE @incr int
 DECLARE @y VARCHAR(20)

 WHILE @i < 5
 BEGIN
     SET @y = (SELECT name FROM store1 WHERE id = @i);    

     IF @y = @var
         SET @incr = (SELECT count FROM store1 WHERE id = @i)+1

     PRINT N'TRUE';

     ELSE
         PRINT 'FALSE';

     SET @i = @i + 1
 END
如果在If之后有多个语句,则必须使用BEGIN。。。。结束块。。。
     IF @y = @var
     BEGIN
         SET @incr = (SELECT count FROM store1 WHERE id = @i)+1
         PRINT N'TRUE';
     END
     ELSE
         PRINT 'FALSE';