我正在尝试检查if if中的多个OR条件,但是如果块仍然被执行,那么即使GUIDStatement是' ContactDetailsGUID'或者' FILECONTENTSGUID'或者' AccountGUID'。
我有一个游标,它不断为GuidStatement变量赋值。因此,在任何给定的时间点,我的@GUIDStatements变量都将具有任何单个名称 当我的GUIDStatement具有任何上述值
时,我的If条件不应该被执行我的条件如下。请帮忙。
IF ( (@GUIDStatements <> 'ContactDetailsGUID') OR (@GUIDStatements <> 'FILECONTENTSGUID') OR (@GUIDStatements <> 'AccountGUID'))
答案 0 :(得分:2)
运行以下代码。无论@GUIDStatements的值如何,第一个代码块(即代码)都返回false。如果@GUIDStatements在三个值之一中,则第二个块建议返回false,否则返回true。我想,正如我理解你的问题,那就是你正在寻找的东西。如果没有请评论,我会尝试澄清。
DECLARE @GUIDStatements SYSNAME = N'not';
--
-- your code
-------------------------------------------------
IF (
(
@GUIDStatements <> 'ContactDetailsGUID'
)
OR
(
@GUIDStatements <> 'FILECONTENTSGUID'
)
OR
(
@GUIDStatements <> 'AccountGUID'
)
)
SELECT N'false'
ELSE
SELECT N'true';
--
-- suggestion
-------------------------------------------------
IF @GUIDStatements IN ( 'ContactDetailsGUID', 'FILECONTENTSGUID', 'AccountGUID' )
SELECT N'false'
ELSE
SELECT N'true';
答案 1 :(得分:0)
怎么样:
IF @GUIDStatements NOT IN ('ContactDetailsGUID', 'FILECONTENTSGUID', 'AccountGUID')
也更容易维护。