Предложение SQL OR, чтобы не читать каждую строку в таблице

Есть ли лучший способ в том, где пункты, чтобы сделать следующий тип условия ИЛИ

WHERE (@TestID IS NULL OR t.[ID] = @TestID) 

Проблема, с которой я сталкиваюсь, заключается в том, что в предложении WHERE существует множество из них для разных переменных, и это вызывает огромные числа или чтения. То, что я пытаюсь выполнить, – это если параметр NULL не оценивает его, если он не равен NULL, тогда оцените его. Единственное решение, с которым я столкнулся, заключается в том, чтобы разбить их на огромные запросы, проверяя, что заполняется и адаптируется к таким запросам:

 IF @TestID IS NOT NULL .... ELSE IF @TestID IS NULL .... 

Это становится чрезвычайно громоздким и трудно поддерживать со многими переменными.

Если у вас их много, это может быть случай для динамического SQL, так как этот шаблон поиска склонен к проблемам с параметрами нюхания.

 create proc dbo.MySearch @col1 int, @col2 varchar(30) as declare @sql nvarchar(max), @params nvarchar(max); set @sql = 'select col1, col2 from dbo.Table where 1 = 1'; set @params = '@col1 int, @col2 varchar(30)'; if @col1 is not null set @sql += 'and Col1 = @col1'; if @col2 is not null set @sql += 'and Col2 = @col2'; exec sp_executesql @sql, @params, @col1, @col2; 

Однако реальный ответ на управление сложностью заключается в написании программы для создания хранимой процедуры!

 Where ISNULL(t.[ID], @TestId) = @TestId 

Это приведет к получению всех нулевых значений и значений, соответствующих вашему TestId

  • Если count (values)> 1, объедините все значения в одну ячейку
  • Я создал функцию SQL Server. Теперь я не могу найти его в SSMS
  • SQL NVARCHAR (MAX) возвращает ASCII и Weird Characters вместо текста
  • Dynamics AX 2012: конверсия не удалась при преобразовании даты и / или времени из символьной строки
  • Преобразование результатов поиска в сценарий вставки
  • Почему SSMS не подходит, когда дело доходит до добавления столбцов?
  • Почему моя новая схема не отображается в панели свойств таблицы?
  • Некорректное сообщение об ошибке в скрипте SQL Server
  • SQL Server: агрегированные функции и GROUP BY в длинных запросах
  • Изменение местоположения данных автоматического восстановления в SQL Server Management Studio
  • Связанный сервер SQL Server в Management Studio
  • Давайте будем гением компьютера.