Главная страница
    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.043 c
15-1178159036
Slider007
2007-05-03 06:23
2007.06.03
С днем рождения ! 3 мая


15-1178275864
Motorola Phone (L6)
2007-05-04 14:51
2007.06.03
Подзарядка мобилы через USB компьютера


15-1178092102
Alkid
2007-05-02 11:48
2007.06.03
Появилось стойкое желание...


3-1173464796
databaser
2007-03-09 21:26
2007.06.03
Поиск в найденном


15-1178538421
db2admin
2007-05-07 15:47
2007.06.03
"Пиратство" оценили в пять тысяч рублей





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