如何在T-SQL中编写带有多个参数的IF语句?
当前来源错误:
DECLARE @StartDate AS DATETIME
DECLARE @EndDate AS DATETIME
SET @StartDate = NULL
SET @EndDate = NULL
IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL)
BEGIN
-- do some work
END
它会抛出以下错误:
关键字附近的语法不正确 '和'。附近的语法不正确 关键字'AND'。语法不正确 ')'
答案 0 :(得分:42)
你做得对。空代码块是导致您的问题的原因。这不是条件结构:))
DECLARE @StartDate AS DATETIME
DECLARE @EndDate AS DATETIME
SET @StartDate = NULL
SET @EndDate = NULL
IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL)
BEGIN
print 'yoyoyo'
END
IF (@StartDate IS NULL AND @EndDate IS NULL AND 1=1 AND 2=2)
BEGIN
print 'Oh hey there'
END
答案 1 :(得分:1)
这是创建复杂布尔表达式的方法:将它们与AND和OR组合。您发布的代码段不会为IF引发任何错误。
答案 2 :(得分:1)
似乎工作正常。
如果你有一个空 BEGIN ... END 块,你可能会看到
Msg 102,Level 15,State 1,Line 10 'END'附近的语法不正确。
答案 3 :(得分:1)
不确定问题是什么,这似乎工作得很好?
DECLARE @StartDate AS DATETIME
DECLARE @EndDate AS DATETIME
SET @StartDate = NULL
SET @EndDate = NULL
IF (@StartDate IS NOT NULL AND @EndDate IS NOT NULL)
BEGIN
Select 'This works just fine' as Msg
END
Else
BEGIN
Select 'No Lol' as Msg
END
答案 4 :(得分:1)
您的代码有效(有一个例外)。它需要在BEGIN和END之间有代码。
替换
--do some work
带
print ''
我想也许你看到了“结束而不是”和“