Фильтровать пустые, пустые значения в таблице - PullRequest
0 голосов
/ 06 мая 2011

В таблице данных MS Access можно ли отфильтровать те записи, чье значение равно нулю или пусто в определенном поле в моей таблице?

Ответы [ 3 ]

1 голос
/ 06 мая 2011

В вашем выражении SQL:

WHERE Nz(CompanyName, '') = '' 

В свойстве фильтра формы:

Nz(CompanyName, '') = ''

Решение, опубликованное Mitch Wheat, также будет работать. Я не уверен, какой из них предложит лучшую производительность. Если вы используете решение Mitch, а также используете другие условия в предложении Where, не забудьте вставить круглые скобки следующим образом:

WHERE (myCol IS NULL OR LEN(myCol) = 0) AND myCol2 = True
1 голос
/ 08 мая 2011

Использование функции в критерии означает, что вы не можете использовать индексы. Решение @Mitch Wheat будет использовать индекс для теста Is Null, но не для теста Len().

Уточняющее предложение WHERE будет следующим:

  WHERE myCol Is Null OR myCol = ""

Но я бы порекомендовал отключить «разрешить строки нулевой длины», и тогда вам нужно всего лишь выполнить тест Null, который для индексированного поля будет очень быстрым.

Что бы это ни стоило, меня очень раздражает то, что MS изменила настройки по умолчанию для новых текстовых полей, чтобы включить Allow ZLS. Это означает, что мне нужно изменить каждый из них, когда я использую конструктор таблиц для создания новых полей.

1 голос
/ 06 мая 2011

Да.

WHERE myCol IS NULL OR LEN(myCol) = 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...