代码之家  ›  专栏  ›  技术社区  ›  Michael Kniskern

多参数if语句-t-sql

  •  25
  • Michael Kniskern  · 技术社区  · 16 年前

    如何在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
    

    它引发以下错误:

    关键字附近有语法错误 “和”。附近的语法错误 关键字“和”。附近有语法错误 “”。

    5 回复  |  直到 16 年前
        1
  •  42
  •   Shaun Mundi    16 年前

    你做得对。空代码块是导致问题的原因。这不是条件结构:)

    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
    
        2
  •  1
  •   Remus Rusanu    16 年前

    这就是创建复杂布尔表达式的方法:将它们与AND和OR结合起来。您发布的代码片段不会为if抛出任何错误。

        3
  •  1
  •   Adriaan Stander    16 年前

    似乎工作得很好。

    如果你有空的 开始…结束 你可能看到的街区

    消息102,15级,状态1,第10行 “end”附近有语法错误。

        4
  •  1
  •   Ta01    16 年前

    不知道是什么问题,这看起来工作得很好?

    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
    
        5
  •  1
  •   Gabriel McAdams    16 年前

    您的代码有效(有一个例外)。它需要在开始和结束之间有代码。

    替换

    --do some work
    

    具有

    print ''
    

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