Главная страница
    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.47 MB
Время: 0.034 c
15-1178706726
Галинка
2007-05-09 14:32
2007.06.03
А как ноныче делаются блок-схемы ??


3-1173958678
SergTT
2007-03-15 14:37
2007.06.03
Как обойти ситуацию с заполнением значения ключевого поля


6-1164191295
nali
2006-11-22 13:28
2007.06.03
Проверка соединения с интернет


3-1173705345
Thely
2007-03-12 16:15
2007.06.03
Интеграция FIBPlus и FastReport 3.0?


2-1179146369
POP
2007-05-14 16:39
2007.06.03
Непонятка с передачей данных (COM порт)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский