Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.03;
Скачать: CL | DM;

Вниз

Вопросик на зание SQL. (Дамы с праздником 8 марта)   Найти похожие ветки 

 
Antoxa2005   (2007-03-08 04:57) [0]

Подскажите, как можно (или принято) выбирать записи из таблицы, если необходима выборка по переменным полям в т.ч. группам.

Select * FROM Table WHERE Field1=1 and Field2=2 and Field3=3
Select * FROM Table WHERE Field1=1 and Field2=* and Field3=3
Select * FROM Table WHERE Field1=* and Field2=* and Field3=3

Что можно указать вместо (Field(n)=*) звездочки, для выборок по любым группам полей?

Т.е. что бы в 3 Select-e были выбраны все записи, у которых Filed3=3, а на  Field1 и Field2 не каких ограничений наложено небыло.


 
Sergey13 ©   (2007-03-09 08:31) [1]

Через параметры, где на каждое поле будет условие типа

where (:flag1=0 or (:flag1=1 anf Field1=:Field1))
and (:flag2=0 or (:flag2=1 anf Field2=:Field1))


 
sniknik ©   (2007-03-09 09:05) [2]

> Через параметры, где на каждое поле будет условие типа
> ...
можно упростить, и, 2 одноименных параметра не допускается (все одно будут разные но по имени обратится нельзя будет)

where (:flag1 is null or Field1=:field1) and (:flag2 is null or Field2=:field2)

и второй чисто для access (незнаю может и другие у которых автоприведение типов есть) пойдет (или самому сделать), хотя конечно способ не очень, индексы на вычислениях не работают...
Select * FROM Table WHERE Field1 LIKE "%" and Field2 LIKE "%" and Field3  LIKE "3"
(так точно пойдет а с параметром проверь сам)


 
ЮЮ ©   (2007-03-09 09:20) [3]

Если запрос формируется динамически, то и оставить только те услоаия, что реально задействованы:
Select * FROM Table WHERE Field3=3


 
Sergey13 ©   (2007-03-09 09:26) [4]

> [2] sniknik ©   (09.03.07 09:05)
> where (:flag1 is null or Field1=:field1) and (:flag2 is null or Field2=:field2)
Точно сейчас не вспомню, но вроде в ФБ у меня были проблемы с проверкой на нулл в таком варианте запроса. Мой вариант проходил. Хотя возможны варианты конечно.


 
stud ©   (2007-03-09 10:40) [5]

Sergey13 ©   (09.03.07 8:31) [1]
Через параметры, где на каждое поле будет условие типа

where (:flag1=0 or (:flag1=1 anf Field1=:Field1))
and (:flag2=0 or (:flag2=1 anf Field2=:Field1))

для фб с теми же параметрами только без флагов
where (:par1=<значение которое не может встретиться в поле1> or Field1=:par1) and
(:par2=<значение которое не может встретиться в поле2> or Field2=:par2)
и т.д.


 
Antoxa2005   (2007-03-09 15:10) [6]


> Select * FROM Table WHERE Field1 LIKE "%" and Field2 LIKE
> "%" and Field3  LIKE "3"
> (так точно пойдет а с параметром проверь сам)

Работает, только если Field не null, но это уже...


 
MsGuns ©   (2007-03-10 00:09) [7]

>sniknik ©   (09.03.07 09:05) [2]
>Select * FROM Table WHERE Field1 LIKE "%" and Field2 LIKE "%" and Field3  LIKE "3"

Акцес символ "%" нихт ферштейн


 
Германн ©   (2007-03-10 02:18) [8]

<offtop>
А как всё хорошо начиналось, "вызваем в Москву"! И как всё кончилось - "художественная самодеятельность"!
</offtop>
Не хочу уходить с Парадокса, при всех его недостатках :)


 
sniknik ©   (2007-03-10 09:41) [9]

> Акцес символ "%" нихт ферштейн
а вот поэтому и прошу всегда чтобы называли не только то с чем работают но и то через что...
и постоянно эту деталь опускают как неважную.

синтаксис отличается, если ты выполняешь непосредственно в программе аксесс или BDE то вместо % будет *.


 
Antoxa2005   (2007-03-15 15:43) [10]


> синтаксис отличается, если ты выполняешь непосредственно
> в программе аксесс или BDE то вместо % будет *.

Вот теперь все понятно, исчерпывающе... Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2007.06.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1179293313
antonyan
2007-05-16 09:28
2007.06.03
окно справочника 1С


15-1178197925
Ega23
2007-05-03 17:12
2007.06.03
Как по аглицки сказать


15-1178277548
Алхимик
2007-05-04 15:19
2007.06.03
StarWars


4-1167202366
clickmaker
2006-12-27 09:52
2007.06.03
PropertySheet &amp; Windows 95


2-1178989842
Gaara_of_the_Desert
2007-05-12 21:10
2007.06.03
Создание объектов на форме