Оператор множественного аргумента 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
Он выдает следующую ошибку:
Неверный синтаксис рядом с ключевым словом 'А ТАКЖЕ'. Неправильный синтаксис рядом с ключевое слово "И". Неправильный синтаксис рядом ')'.
Ответы
Ответ 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 ''
Я думаю, что, возможно, вы видели "КОНЕЦ, а не" И "