Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Возможно ли составить SQL запрос с NULL?


Prohodil Mimo ©   (2008-03-07 14:30:00) 

База FB 2.
В таблице есть поле INTEGER, которое может содержать значение, а может быть и NULL.

Если мне нужно выбрать записи по значению, я пишу такой запрос:
SELECT ID1, FLD1
FROM TABLE1
WHERE FLD1 = ?FLD

Если мне нужно выбрать записи у которых NULL, я пишу такой запрос:
SELECT ID1, FLD1
FROM TABLE1
WHERE FLD1 IS NULL

Если мне нужно выбрать все записи, я пишу такой запрос:
SELECT ID1, FLD1
FROM TABLE1

А возможно ли их как-то объединить, что бы в зависимости от параметра или от двух я получал то, что необходимо?

Как вариант - переписывать SQL каждый раз, но возможно ли обойтись в таком случае просто параметрами?


jack128_   (2008-03-07 15:03:00) [1]

SELECT ID1, FLD1
FROM TABLE1
WHERE (:GET_ALL_RECORD is not null) or
         (:FLD1 is NULL and FLD1 is null) or
         (:FLD1 = FLD1)


Prohodil Mimo   (2008-03-07 14:59:00) [2]

Sergey13 ©   (07.03.08 14:43) [1]

Спасибо! Именно так и заработало.


Sergey13   (2008-03-07 14:43:00) [3]

> [0] Prohodil Mimo ©   (07.03.08 14:30)
Примерно так можно

SELECT ID1, FLD1
FROM TABLE1
WHERE
(:flag=1 and FLD1 = ?FLD)
or (:flag=2 and FLD1 IS NULL)
or (:flag=3)

Не помню, но с одной переменной может не получиться и придется вводить 3 разные переменные.


Наверх

Титульная страница Поиск, карта сайта Написать письмо