Упрощенный пример того, что мне нужно:выберите из таблицы, где column = anything
Таблица «Транспорт» имеет 2 столбца; «Автомобиль» и «Цвет». Пользователь может фильтровать записи либо автомобилем, либо цветом, либо обоими.
variable vehicle_choice = user_selected_vehicle (selected from a dropdown for example)
variable colour_choice = user_selected_colour
If user_selected_vehicle = nothing selected Then
vehicle_choice = *
End if
If user_selected_colour = nothing selected Then
colour_choice = *
End if
Select query = ("Select * From Transport Where Vehicle = vehicle_choice And Colour = colour_choice")
Таким образом, если пользователь хотел «красный» «автобус» запрос будет выглядеть следующим образом:
("Select * From Transport Where Vehicle = 'bus' And Colour = 'red'")
Какой бы хорошо и найти запись, если она существует.
Но, если пользователь хочет все транспортные средства, которые были желтый запрос будет выглядеть следующим образом:
("Select * From Transport Where Vehicle = * and Colour = 'yellow'")
Очевидно, что это все в составленной синтаксисе, но это то, что я хочу, это возможно в SQL? (Использование MS SQL Server 2008)
Erland Sommarskog написал довольно приличную статью под названием [Динамические условия поиска в T-SQL] (http://www.sommarskog.se/dyn-search.html), которая охватывает большинство сценариев. –
Кроме того, я бы рекомендовал прочитать [эту статью] (http://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/) в блоге «SQL in the Wild». –
Я собираюсь узнать больше и обязательно посмотрю на эти статьи, спасибо. – Ryan