SQL INSERT с оператором if - PullRequest
       5

SQL INSERT с оператором if

1 голос
/ 27 марта 2012

У меня есть таблица с именем notification, с двумя столбцами:

  • Поставщик
  • Адрес электронной почты

Значения выглядят так:

  • яблоко | apple@apple.com
  • нбк | nbc@nbc.com
  • нбк | me@me.com
  • abc | abc@abc.com
  • abc | me@me.com

Для всех провайдеров, у которых нет электронной почты me@me.com, я хочу вставить еще одну строку с провайдером и адресом электронной почты them@them.com. Например, в приведенном выше запросе результат оператора INSERT будет: INSERT INTO notification VALUES ('apple', 'them@them.com').

У меня есть такая таблица с тысячами строк, как бы я написал такой INSERT оператор?

Ответы [ 2 ]

2 голосов
/ 27 марта 2012
INSERT INTO notification
SELECT DISTINCT provider, 'them@them.com'
FROM notification
WHERE provider NOT IN
(SELECT DISTINCT provider
FROM notification
WHERE email = 'me@me.com')
0 голосов
/ 27 марта 2012

Это должно дать вам то, что вы ищете:

insert into notification (provider, email)
select distinct provider, 'them@them.com'
from notification
where provider not in (
        select provider
        from notification
        where email like 'me@me.com'
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...