1 (edited by abc52 2020-11-21 00:08:00)

Topic: Как фильтровать пустые значения полей ?

Привет форуму !

   Не фильтруются пустые значения цифровых и текстовых полей.
   
  Например, kl=0,  Sm=0,  Txt='', Length(txt)=0 - не работают.
 
  Пустые даты работают так - Da Like '%1899%'

    Что делать ?

Re: Как фильтровать пустые значения полей ?

Пустые поля в базе данных имеют значение NULL

условие вывода, например, 

WHERE namefield IS NULL
Yana

Re: Как фильтровать пустые значения полей ?

Спасибо за помощь !
   
     Путем экспериментов работают фильтры (In - Integer поле)
     
      In is Null or In='0' <-> In=0  In>0 and In<>''  <-> In>0
 
       In>0 or In='0' or In is Null  <-> In>=0   ...
   
      Почему так запутанно работают фильтры в этих случаях ?
          Может Дмитрий обьяснит ?

Re: Как фильтровать пустые значения полей ?

abc52 wrote:

Спасибо за помощь !
   
     Путем экспериментов работают фильтры (In - Integer поле)
     
      In is Null or In='0' <-> In=0  In>0 and In<>''  <-> In>0
 
       In>0 or In='0' or In is Null  <-> In>=0   ...
   
      Почему так запутанно работают фильтры в этих случаях ?
          Может Дмитрий обьяснит ?

Всё распутается, как только начнёте изучать SQL  smile

Визуальное программирование: блог и телеграм-канал.

Re: Как фильтровать пустые значения полей ?

Ув.  К245  !   Что распутывать, если пустое поле   '' в фильтре не работает ?
                            1           2            3           4           5
Значе-               in<0     in<=0      in=0     in>=0     in>0           < -  фильтры
ния  in

-1                         -1         -1
0                                        0           0            0
1                                                                   1           1
'' - пустое

4                           1           2           1            2            1             < -  к-во записей 

                                          3           2            3                            < -  а должно быть

   Пустое поле и  0  -  однозначны  и  должны работать в для  фильтров  2 - 4.

    Спасибо за ответ.

6 (edited by adiziktdy 2020-12-22 12:39:42)

Re: Как фильтровать пустые значения полей ?

Пустое поле и  0  -  однозначны  и  должны работать в для  фильтров  2 - 4.

    Спасибо за ответ.


Пустое поле на то и пустое, что НЕ ЗАПОЛНЕНО НИЧЕМ.

Ноль же это символ для символьного поля -> '0' и для числового - число 0

Разница очевидна.

Чтобы привести NULL к числу 0 нужно пользоваться функцией замены IFNULL(in,0).

Yana

7 (edited by abc52 2020-12-28 22:08:35)

Re: Как фильтровать пустые значения полей ?

Как  для  значений  0  и  Null  цифрового  поля  IN  фильтр


IN+IN=0  -  работает  правильно,  а фильтр  IN=0  - нет
 
( фильтруется только  0 )            Разница  в чем  ?   


  Спасибо  за  внимание.