У меня больше элементов управления (предположим, что 10 элементов управления с текстовым полем, выпадающим списком, переключателями) в моем приложении форм Windows для фильтрации данных, которые все не являются обязательными, поэтому пользователь может фильтровать данные с помощью 1 или больше.Фильтрация нескольких столбцов в хранимой процедуре в SQL Server
Теперь я должен создать хранимую процедуру для фильтрации данных на основе их входов.
Ех: если пользователь вводит какой-либо текст в 1 текстовом поле управления, а оставшиеся 9 элементов управления с пустыми данными, я должен фильтровать данные только на том текстовом поле, которое вводил пользователь.
Если пользователь вводит какой-либо текст в 1 текстовом поле управления и 1 выпадающий список, а оставшиеся 8 элементов управления с пустыми данными, я должен фильтровать данные на основе только этого текстового поля и выпадающего списка, который был введен пользователем.
Что я должен делать?
В исходном коде:
Если пользователь ввел/выбранный текст на любом контроле, я передаю значение в качестве параметров еще я прохожу как «нуль», чтобы остальные все остальные параметры.
В хранимой процедуре:
Я дал все 10 контрольных параметров, чтобы получить значение из исходного кода, на основе параметров, я фильтрации данных.
if @Param1=null && @Param2=null && @Param3='SomeText'
begin
sELECT * FROM tABLE1 wHERE [email protected]
END
if @Param1=null && @Param2='SomeText' && @Param3='SomeText'
begin
sELECT * FROM tABLE1 wHERE [email protected] AND [email protected]
END
Примечание: мне нужно фильтровать данные с каждого столбца таблицы для каждого параметра, просто предположим @ Param1 - TableCOLUMN1, @ param2 - TableCOLUMN2, фильтр меняется в зависимости от параметров текста.
Если я сделаю это, моя хранимая процедура будет более огромной и очень большой, потому что у меня есть 10 параметров для проверки (только для вашей справки я дал 3 параметра выше образца).
Что я хочу:
Поскольку я дал 10 параметров, на основе параметров, имеющих значения (текст, кроме NULL) только я должен фильтровать данные, используя где условие.
Есть ли другой способ сделать это, или у кого-нибудь есть другие способы для этого?
Прочитать [Условия динамического поиска в T-SQL] (http://www.sommarskog.se/dyn-search.html) –