Как исключить определенные значения из запроса [SQL]

#sql #aggregate-functions #having-clause #nested-queries

#sql #агрегатные функции #наличие-предложение #подзапрос

Вопрос:

как указано в заголовке, an NotPrimID , может иметь два разных значения Example 1 и Example 2

 "ExampleTable"

NotPrimID     Text
0             "Example 1"
0             "Example 1"
0             "Example 2"
1             "Example 1"
1             "Example 1"
2             "Example 1"
2             "Example 2"
  

ЕСЛИ: если NotPrimID имеет оба значения, оно должно быть автоматически исключено из результата запроса.

Что я хочу: запрос, который будет удалять все NotPrimID , что в результате имеет только «Пример 1», однако, если NotPrimID в качестве возможного результата также есть «Пример 2», он должен быть автоматически исключен.

Вопрос: Как исключить определенные NotPrimID , если у него есть дополнительные значения?

Ответ №1:

Вы можете использовать group by и having :

 select notprimid
from exampletable
group by notprimid
having min(text) = max(text) and min(text) = 'Example1'
  

Это возвращает все notprimid s, которые имеют только один distinct text , значение которого должно быть 'Example1' .

Комментарии:

1. Работает фантастически — Спасибо!