Как сопоставить строки в запросе DB2 (z / OS)? - PullRequest
3 голосов
/ 03 ноября 2010

Это поражает меня.

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

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

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

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

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

1 Ответ

6 голосов
/ 03 ноября 2010

И во сколько из этих строк 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.

...