SQL Server 2005: Selezionare una colonna Se un'altra colonna Is Null o contiene una parola
-
10-10-2019 - |
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:
- Se l'indirizzo di posta elettronica originale è vuota, ha bisogno di includere l'indirizzo email alternativo.
- Se l'indirizzo di posta elettronica originale contiene nostro dominio (customer@mydomain.com), ha bisogno di includere l'indirizzo email alternativo.
- 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.
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