У меня есть запрос, который я создаю для приложения. База данных настроена в SQL Server 2008. Я хочу использовать запрос, подобный ниже, однако я буду использовать это предложение «Where» для примерно 4 других столбцов, используя те же требования. Является ли это подходящим способом проверить значение null или '' в столбце, который является VarChar (255), и разрешает null.SQL Search Query With Null и ''
В идеале, если переменная @UutSerialNumber является пустой или пустой (''), я хочу получить все результаты, но если это не так, я хочу использовать предложение LIKE. Это правильный способ сделать это и будет ли он работать? Кажется, что это работает до тех пор, пока я не добавлю больше столбцов в предложение Where.
Кроме того, как бы я обрабатывал тип данных «text», используя тот же тип запроса?
SELECT DeviceName, UutStatus FROM MyTable WHERE (UutSerialNumber LIKE '%' + @UutSerialNumber + '%' OR UutSerialNumber LIKE '%%' AND (@UutSerialNumber = '' OR @UutSerialNumber IS NULL)) AND ...
Помощь ценится. Всем спасибо!
Что вы ожидаете с этим фильтром: 'ИЛИ UutSerialNumber LIKE '%%''? – Lamak
У меня было впечатление, что это будет означать выбор всего. Поэтому, если параметр имеет значение null или '', не фильтруйте его в этом столбце. – ImGreg
Но у вас это есть на 'OR', поэтому если' UutSerialNumber' имеет некоторое значение (и это отличается от выбора всего, так как это не учитывает значения «NULL»), тогда он не будет фильтроваться, независимым от значения вашего параметра – Lamak