SQL Server 2005: выберите один столбец, если другой столбец равен нулю или содержит слово - PullRequest
6 голосов
/ 16 ноября 2010

Я пытаюсь создать отчет с помощью BIDS.Я хочу, чтобы в одном из столбцов был указан адрес электронной почты.У меня есть две таблицы, содержащие адреса электронной почты.Один содержит оригинальный адрес электронной почты, предоставленный клиентом, когда он начал работать с нами.Другая таблица содержит возможно обновленный (альтернативный) адрес электронной почты, который они отправили на веб-сайте.

Иногда оригинальный адрес электронной почты использует домен нашей компании, поскольку моя компания использует для создания электронных писем клиентов, у которых не было адреса.

Мне нужно создать запрос, который будет оценивать исходный адрес электронной почты.Он должен сделать две вещи:

  1. Если исходный адрес электронной почты пуст, необходимо указать альтернативный адрес электронной почты.
  2. Если исходный адрес электронной почты содержит наш домен (customer @mydomain.com), в него должен быть включен альтернативный адрес электронной почты.
  3. Если два указанных выше пункта не соответствуют действительности, необходимо указать исходный адрес электронной почты.

В запросе нужно будет выложить эту оценку в один столбец под названием Email.

Можно ли это сделать?Должен ли я смотреть в сторону BIDS вместо этого?Если да, то в каком направлении?

Заранее благодарен за помощь.

Ответы [ 2 ]

19 голосов
/ 16 ноября 2010

легко peasy с помощью CASE.Что-то вроде:

SELECT whatever1, whatever2, CASE
WHEN originalemail IS NULL THEN alternateemail
WHEN originalemail like '%domainname%' THEN alternateemail
ELSE originalemail
END AS Email
FROM...
2 голосов
/ 22 марта 2012
SELECT 

 CASE t1.orgEmail

   WHEN NULL THEN t2.altEmail

   WHEN LIKE '%domainname%' THEN t2.altEmail

   ELSE

      t1.orgEmail

  END AS email

FROM

table1 AS t1, Table2 as t2
...