Как объединить критерии в предложении WHERE с AND (POSTGRES) - PullRequest
0 голосов
/ 17 октября 2019

Мне нужно выполнить два критерия, чтобы выбрать данные из таблицы, а затем выполнить отдельный третий критерий. Проблема, с которой я, похоже, сталкиваюсь, заключается в том, что я не могу «сгруппировать» (из-за отсутствия лучшего термина) первые критерии вместе перед проверкой третьего.

select * 
from locations 
where (town <> '2' and name <> 'south park') and report_number = 12345;

Необходимо объединить условия города и названия, так как у меня также есть название «южный парк» в городе № 1, и я действительно хочу взять эту запись вместе со всем, что не является »Южный парк "в городе № 2.

Мне удалось обойти это (но очень грубо), выполнив следующее:

select * 
from locations 
where (town || name <> '2south park') and report_number = 12345;

Первый запрос избавляет от всего в городе 2и все имена «южного парка» в отчете 12345

Второе работает, но я надеюсь, что есть лучший способ написания этого запроса.

1 Ответ

0 голосов
/ 17 октября 2019

Я думаю, что логика, которую вы хотите использовать, использует or, а не and:

where (town <> '2' or name <> 'south park') and 
      report_number = 12345;

Возможно, вам будет проще:

where not (town = '2' and name = 'south park') and 
      report_number = 12345;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...