![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
![]()
делаю поиск в таблице по нескольким условиям ... необходимо сделать так чтобы поиск шел только по заполненным полям, если заполнено одно поле то выборка идет только по одному условию, если два поля то выборка по двум условиям и так далее
Как вы сформулируете вопрос так вам и ответят
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
![]()
а в чем проблема-то?
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 30.06.2009
Сообщений: 98
|
![]()
вот например
.... WHERE условие1 or условие2; .... если заполнено одно поле то все нормально а если два то получаем результат удовлетворяющий первому или второму условию (оператор and не катит т.к. условий может быть больше) нужно сделать так чтобы выполнялись только те условия в которые введены параметры поиска
Как вы сформулируете вопрос так вам и ответят
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 29.06.2008
Сообщений: 603
|
![]()
формируйте запрос динамически исходя из ваших условий
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.09.2009
Сообщений: 19
|
![]()
Просто к каждому условию нужно подставить is not null, то есть:
WHERE (условие1 and поле1 is not null) or (условие2 and поле2 is not null) |
![]() |
![]() |
![]() |
#6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) не вижу принципиальных сложностей. Да и на форуме неоднократно были примеры динамического создания запросов
2) Цитата:
попробуйте выбрать SELECT * from Таблица where поле1=0 а потом, SELECT * from Таблица where поле1<>0 так вот, ни в первом, ни во-втором запросе записи, где поле1 is NULL не будут отобраны! 3) Вы точно уверены, что условия должны связываться через OR ?! Т.е. фактически найти или те записи, которые попадают под одно условие или те, которые попадают под другое? Просто в 99% систем, если Вы задаёте несколько критериев, то они объединяются по условию AND (И). Ну, допустим, я задаю производителя техники Samsung и тип устройства - телевизор. нажимаю найти. Но это не значит, что я хочу найти ВСЁ, что производит фирма самсунг ПЛЮС телевизоры ВСЕХ производителей!! 4) и последнее, а при чём здесь SQL ? Вы на чём данный код пишите (клиент на чём, где условия задаются то)? Вот в подходящем разделе и создавайте тему. |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) | Машуля | SQL, базы данных | 4 | 06.05.2010 21:09 |
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi | S_Yevgeniy | Помощь студентам | 1 | 27.10.2009 06:26 |
запрос sql | sleeper_Izh | SQL, базы данных | 2 | 20.06.2008 11:27 |
SQL-запрос | Dissonance | БД в Delphi | 5 | 17.06.2008 07:11 |
SQL запрос на основе другого SQL запрса... | Timoxa | БД в Delphi | 1 | 07.01.2007 18:15 |