используя NOT LIKE для круглых скобок - PullRequest
1 голос
/ 15 июля 2010

вот мое выражение:

=([Panels] not Like '*IT_AMPH,*' and [Panels] not Like '*AMPH_SN,*' and [Panels] not Like '*AMPH_S,*')

Могу ли я сказать это вместо:

= not ([Panels] Like '*IT_AMPH,*' Or [Panels] Like '*AMPH_SN,*' Or [Panels] Like '*AMPH_S,*')

эти выражения одинаковы?

***** Я должен отметить, что мой вопрос не о логике, а о том, будет ли доступ принимать этот синтаксис *****

Ответы [ 3 ]

3 голосов
/ 15 июля 2010

(НЕ A) И (НЕ B) - то же самое, что NOT (A ИЛИ B), и это распространяется на более чем два термина. Однако - иногда обработка NULL может сбить вас с толку. Если в [Панелях] нет пустых значений, все будет хорошо, в противном случае, проверьте. :)

3 голосов
/ 15 июля 2010

Да.Это просто закон де Моргана.Мне пришлось немного подумать о влиянии NULLS, но в обеих версиях, если [Panels] IS NULL, конечный результат будет неизвестен.

В ответ на ваш уточненный вопрос.Да, также.Я добавил новый столбец «Да / Нет» в таблицу клиентов Northwind под названием «TF», и оба следующих утверждения имели одинаковый эффект.

UPDATE Customers SET 
TF = not ([Last Name] Like '*A*' Or 
          [Last Name] Like '*B*' Or 
          [Last Name] Like '*C*');

UPDATE Customers SET 
TF = ([Last Name] not Like '*A*' and 
      [Last Name] not Like '*B*' and 
      [Last Name] not Like '*C*');
1 голос
/ 15 июля 2010

Не вижу, почему нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...