как выбрать в операторах if

Я хочу протестировать два TaskChangeLogID, где ID '28' имеет значение NewRollback 0, а идентификатор 31 имеет значение NewRollback 1.

Я хочу убедиться, что в зависимости от того, какой идентификатор вызывается, он выбирает правильный номер NewRollback. Я получаю ошибку, применяя код ниже в новом окне, поэтому вам нужна помощь в настройке и узнайте, как тестировать такие вещи в будущем. Я получаю ошибку только в строке оператора IF.

SELECT isnull(NewRollback, 0) FROM Core.TaskChangeLog WHERE TaskChangeLogID = 28 SELECT isnull(NewRollback, 0) FROM Core.TaskChangeLog WHERE TaskChangeLogID = 31 IF (NewRollback = 1) Select * from Core.TaskChangeLog where NewRollback = 1 ELSE BEGIN Select * from Core.TaskChangeLog where NewRollback = 0 END 

Вы не нуждаетесь в условии IF для этого, просто логика AND/OR выполнит работу

Попробуйте этот путь

 Select * from Core.TaskChangeLog where (NewRollback = 1 and askChangeLogID = 28) OR (NewRollback = 0 and askChangeLogID = 31) 

Чтобы сделать какое-то действие на основе результата select попробуйте это

 IF EXISTS (Select * from Core.TaskChangeLog where NewRollback = 1 and askChangeLogID = 28) -- Replace with your ID BEGIN --some action END IF EXISTS (Select * from Core.TaskChangeLog where NewRollback = 0 and askChangeLogID = 28) BEGIN --some action END 

Как насчет того, чтобы все это было в одном запросе? Это мое лучшее предположение относительно логики, которую вы хотите:

 Select * from Core.TaskChangeLog where NewRollback = (SELECT COALESCE(NewRollback, 0) FROM Core.TaskChangeLog WHERE TaskChangeLogID = XX ); 

Ваш код не работает, потому что NewRollback в IF не определен. Вы можете использовать переменную, но это просто усложнит код. И код должен быть упрощен, а не сложнее.

Interesting Posts

Не удалось обновить / удалить / усечь таблицу с помощью внешнего ключа

Как применить сравнение Datetime по типу данных varchar в C #

Создатель отчетов SQL Server Объединение нескольких таблиц

Являются ли хранимые процедуры CLR предпочтительными над хранимыми процедурами TSQL в SQL 2005+?

Производительность SQL, .Net Optimization vs Best Practices

Обновление с SQL Server 2008 R2 Express до SQL Server 2008 R2 Enterprise

Запрос отладки Sql выполняется одновременно с отладкой в ​​студии управления – заблокированные данные зависают от запроса

Чтение столбцов вне порядка возвращает неверные значения (драйвер ODBC SQL Server)

Преобразование результата динамического sql в xml

SSIS импортирует дополнительные десятичные значения в таблицу sql назначения от excel

sql непрерывные значения столбца из данных для просмотра сводной таблицы

КОМПЬЮТЕР НЕ СУЩЕСТВУЕТ ИЛИ НЕ В ЗАПРОС

Обновление операции с подстрокой в ​​MSSQL

Сравните каждую запись одной таблицы с сервером sql и возвращайте дубликаты

Добавить имя таблицы в поле Имя с помощью Select *

Давайте будем гением компьютера.