Как сопоставить строки в запросе DB2 (z/OS)?

Это сводит меня с ума.

Все, что я хочу сделать, это простое сравнение строк в длинном поле varchar.

У меня есть таблица ок. 12М записей.

Если я запрошу MY_FIELD='a string', я получу число 25947, что кажется правильным.

Если я запрошу MY_FIELD!='a string', я получу 989.

Разве эти 2 счетчика не должны составлять полный размер таблицы 12M?


person m2green    schedule 03.11.2010    source источник


Ответы (1)


И в скольких из этих строк MY_FIELD установлено в NULL?

a. select count(*) from mytable;
b. select count(*) from mytable where my_field is null;
c. select count(*) from mytable where my_field is not null;
d. select count(*) from mytable where my_field = 'some value';
e. select count(*) from mytable where my_field != 'some value';

NULL не равно и не равно любому значению, включая NULL, поэтому я ожидаю, что d+e будет равно c, а b+c будет равно a.

person paxdiablo    schedule 03.11.2010
comment
Спасибо, Пакс. Это было проблемой! Дух. - person m2green; 03.11.2010