2014-05-05 2 views
0

Вот мой столСравнить повторяющееся значение в том же поле

DNAME   CITY 
--------------------- 
OPERATOR  BOSTON 
RESEARCH  BOSTON 
RESEARCH  DALLAS 
SALES   DALLAS 
SALES   BOSTON 
INSURANCE  NEW YORK 

Что я хотел сделать найти имена всех отделов, расположенных либо в Бостоне или в DALLAS и не в обоих городах.

Ожидаемый результат должен показывать только «ОПЕРАТОР».

Как выбрать оператор select, который я должен использовать в запросе sql? Должен ли я использовать UNION или INTERSECT?

+0

И http://stackoverflow.com/questions/23406562/select-statement-using-set-algebra и http://stackoverflow.com/questions/23406864/select-clause-and-return- yes-or-no-only –

+0

выглядит как возможное назначение колледжа мне! Вы, ребята, все из того же класса ;-) –

ответ

3
select DNAME 
from YourTable 
WHERE City in ('BOSTON', 'DALLAS') 
GROUP BY DNAME 
having count(distinct City) = 1 

SqlFiddle

+0

@RajaRajendraprasath ?? Не понимаю ваш вопрос. Это счет. Вы можете просто попробовать в sqlfiddle ... –

+0

Я разместил ниже –

0

то, что если повторяющиеся значения?

DNAME   CITY 
--------------------- 
OPERATOR  BOSTON 
RESEARCH  BOSTON 
RESEARCH  DALLAS 
SALES   DALLAS 
SALES   DALLAS 
INSURANCE  NEW YORK 

результат будет таким, как в соответствии с вашим запросом, правильно?

Name  Count 
OPERATOR 1 
SALES 2 
+0

Ну, так как это выглядит как комментарий к моему ответу: у вас будет ПРОДАЖА, да, но счет 1, поскольку я использую 'count (отличный Город)', не 'count (Город)' –

+0

Можно ли это сделать с помощью выражения выбора алгебры? – Marcus

Смежные вопросы