SQL Server 2005: Selezionare una colonna Se un'altra colonna Is Null o contiene una parola

StackOverflow https://stackoverflow.com/questions/4189495

Domanda

Sto cercando di creare un report utilizzando BIDS. Voglio una delle colonne di fornire un indirizzo e-mail. Ho due tabelle contenenti indirizzi e-mail. Uno contiene l'indirizzo email originale il cliente ha fornito quando hanno iniziato a fare affari con noi. L'altra tabella contiene una (alternativo) indirizzo e-mail eventualmente aggiornati hanno presentato sul sito web.

A volte l'indirizzo di posta elettronica originale utilizza il nostro dominio azienda perché il mio uso all'azienda di creare messaggi di posta elettronica per i clienti che non hanno un indirizzo.

Ho bisogno di costruire una query che valuterà l'indirizzo email originale. Ha bisogno di fare due cose:

  1. Se l'indirizzo di posta elettronica originale è vuota, ha bisogno di includere l'indirizzo email alternativo.
  2. Se l'indirizzo di posta elettronica originale contiene nostro dominio (customer@mydomain.com), ha bisogno di includere l'indirizzo email alternativo.
  3. Se i due elementi di cui sopra non sono il caso, ha bisogno di sputare l'indirizzo email originale.

La query dovrà sputare fuori questa valutazione è una singola colonna denominata E-mail.

Può questo essere fatto? Dovrei guardare verso OFFERTE invece? In caso affermativo, in che direzione?

Grazie in anticipo per il vostro aiuto.

È stato utile?

Soluzione

Easy Peasy utilizzando CASE. Qualcosa di simile:

SELECT whatever1, whatever2, CASE
WHEN originalemail IS NULL THEN alternateemail
WHEN originalemail like '%domainname%' THEN alternateemail
ELSE originalemail
END AS Email
FROM...

Altri suggerimenti

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top