Конференция "Базы" » Возможно ли составить SQL запрос с NULL?
 
  • Prohodil Mimo © (07.03.08 14:30) [0]
    База 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 каждый раз, но возможно ли обойтись в таком случае просто параметрами?
  • Sergey13 © (07.03.08 14:43) [1]
    > [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 разные переменные.
  • Prohodil Mimo © (07.03.08 14:59) [2]
    Sergey13 ©   (07.03.08 14:43) [1]

    Спасибо! Именно так и заработало.
  • jack128_ (07.03.08 15:03) [3]
    SELECT ID1, FLD1
    FROM TABLE1
    WHERE (:GET_ALL_RECORD is not null) or
             (:FLD1 is NULL and FLD1 is null) or
             (:FLD1 = FLD1)

 
Конференция "Базы" » Возможно ли составить SQL запрос с NULL?
Есть новые Нет новых   [134431   +15][b:0][p:0.001]