есть ли в Postgres SQL команда, похожая на команду «НЕ»? - PullRequest
0 голосов
/ 04 февраля 2011

Например:

Apple is a and b
Banana is a and b
Orange is a

Я пытаюсь написать команду, в которой она будет показывать только слова, а не b.

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

Структура таблицы

Fruit | Attribute
Apple   A
Apple   B
Banana  A
Banana  B
Orange  A

Запрос

select t1.* from tbl t1
where t1.attribute = 'A'
and not exists (select * from tbl t2
                where t2.fruit=t1.fruit and t2.attribute <> 'A')
0 голосов
/ 04 февраля 2011

Прямо сейчас тег 'sql', так что это стандартный SQL-2003:

WITH tbl (Fruit, Attribute)
     AS
     (
      SELECT Fruit, Attribute
        FROM (
              VALUES ('Apple', 'A'), 
                     ('Apple', 'B'), 
                     ('Banana', 'A'), 
                     ('Banana', 'B'), 
                     ('Orange', 'A')
             ) AS tbl (Fruit, Attribute)
     )
SELECT T1.Fruit, T1.Attribute
  FROM tbl AS T1
 WHERE T1.Attribute = 'A'
       AND 1 = (
                SELECT COUNT(*)
                  FROM tbl AS T2
                 WHERE T2.Fruit = T1.Fruit
               );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...