首页 > 解决方案 > IF .. SQL 中的 ELSE IF 语句不会打印

问题描述

任何人都知道为什么这不会打印任何东西?

它在一个存储过程中

没有错误消息只是返回空白。

此存储过程中有返回变量 int 的 IIF 语句。

这些变量都是 SELECT COUNT() 查询。

如果我将 PRINT 语句替换为:

选择@countA;或选择@countB;等

IF(@countA > @countB) AND (@countC >= 3 OR @countD >= 3))
           BEGIN 
                  PRINT 'YO';
                 
           END 
       ELSE IF(@countA > @countB AND (@countC >= 3 OR @countD >= 3))
           BEGIN 
                
                PRINT 'YO';
           END
       ELSE IF(@countE > @countF AND (@countG >= 3 OR @countH >= 3))
           BEGIN 
                  
                  PRINT 'YO';
           END 
       ELSE
           BEGIN
                PRINT 'YO';
            END ; 

通过更改为变量并选择它而不是打印来修复:

DECLARE @YO varchar(2)
SET @YO = 'YO'

IF(@countA > @countB) AND (@countC >= 3 OR @countD >= 3))
           BEGIN 
                  SELECT @YO;
                 
           END 
       ELSE IF(@countA > @countB AND (@countC >= 3 OR @countD >= 3))
           BEGIN 
                
                SELECT @YO;
           END
       ELSE IF(@countE > @countF AND (@countG >= 3 OR @countH >= 3))
           BEGIN 
                  
                  SELECT @YO;
           END 
       ELSE
           BEGIN
                SELECT @YO;
            END ; 

标签: sql-servertsqlif-statement

解决方案


推荐阅读