Главная страница
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.148 c
15-1175858722
TIF
2007-04-06 15:25
2007.06.03
Про создание сайтов


15-1178796898
Gero
2007-05-10 15:34
2007.06.03
Персональная ветка ArtemESC


2-1179118293
vamp_avp
2007-05-14 08:51
2007.06.03
Как узнать дату изменения файла?


15-1178174073
clickmaker
2007-05-03 10:34
2007.06.03
Как запретить сохранение ссылок на Web Folders?


15-1178828840
РТР
2007-05-11 00:27
2007.06.03
Посоветуйте пожалуйста socs5 - прокси сервер под винду