我对于为什么不执行第二个if语句感到非常困惑。我只需要在没有提供名字和姓氏但具有年龄的情况下运行该语句。它运行第一个if语句,但不运行第二部分。
这是代码
ALTER PROCEDURE [PEOPLE]
(
@AGE int,
@SURNAME nvarchar(10),
@FIRST_NAME nvarchar(10)
)
AS
BEGIN
IF(@SURNAME IS NOT NULL AND @FIRST_NAME IS NOT NULL)
BEGIN
SELECT *
FROM MEMBERS
WHERE Is_Active = 1
AND (FIRST_NAME = @FIRST_NAME AND SURNAME=@SURNAME)
END
-- This else statement isn't being executed :-(
ELSE IF(@AGE <> -1 AND @FIRST_NAME='' AND @SURNAME='')
BEGIN
SELECT *
FROM MEMBERS
WHERE(AGE = @AGE)
END
END
这是我的执行方式:
exec [PEOPLE] @AGE=24, @FIRST_NAME='', @SURNAME=''
如果有人可以帮助,我将不胜感激。谢谢
的ELSE IF
,因为它是需要两个@FIRST_NAME
和@SURNAME
不为空,这是在已经满足IF
。
您可能需要ELSE IF
像这样重写:
ELSE IF(@AGE <> -1 AND (@FIRST_NAME IS NULL OR @FIRST_NAME='') AND (@SURNAME IS NULL OR @SURNAME=''))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句