Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Вниз

Вопросик на зание 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.053 c
3-1173848130
Lavrenty
2007-03-14 07:55
2007.06.03
Экспорт данных из Access в XML


15-1178545424
Сатир
2007-05-07 17:43
2007.06.03
Восстановление Windows XP


2-1179293313
antonyan
2007-05-16 09:28
2007.06.03
окно справочника 1С


2-1179151381
Muchacho
2007-05-14 18:03
2007.06.03
звук в TEdit


11-1160338890
Al2
2006-10-09 00:21
2007.06.03
KOL на C++Builder





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский