多参数IF语句 - T-SQL

时间:2009-12-28 20:03:02

标签: tsql

如何在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'。语法不正确   ')'

5 个答案:

答案 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 ''

我想也许你看到了“结束而不是”和“