Подтвердить что ты не робот

Оператор множественного аргумента IF - T-SQL

Как написать инструкцию IF с несколькими аргументами в T-SQL?

Ошибка источника тока:

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

Он выдает следующую ошибку:

Неверный синтаксис рядом с ключевым словом 'А ТАКЖЕ'. Неправильный синтаксис рядом с ключевое слово "И". Неправильный синтаксис рядом ')'.

4b9b3361

Ответ 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
        print 'yoyoyo'
    END

IF (@StartDate IS NULL AND @EndDate IS NULL AND 1=1 AND 2=2) 
    BEGIN
        print 'Oh hey there'
    END

Ответ 2

Это способ создания сложных булевых выражений: объединить их с И и ИЛИ. Опубликованный вами фрагмент не вызывает ошибок для IF.

Ответ 3

Кажется, что он работает нормально.

Если у вас есть пустой блок BEGIN... END, вы можете увидеть

Msg 102, уровень 15, состояние 1, строка 10 Неверный синтаксис рядом с "END".

Ответ 4

Не уверен, в чем проблема, похоже, это работает нормально?

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

Ваш код действителен (за одним исключением). Требуется код между BEGIN и END.

Заменить

--do some work

с

print ''

Я думаю, что, возможно, вы видели "КОНЕЦ, а не" И "