2013-10-08 14 views
24

Ho questo codice nel mio SelectEsiste una funzione opposta a ISNULL in sql server? Fare non è nullo?

ISNULL(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium', 

ma voglio vedere se "a.PolicySignedDateTime" non è nullo. Esiste una funzione semplice per eseguire questa operazione che non prevede l'utilizzo di un'istruzione "if"?

Ciao ragazzi

+3

Usa 'espressione CASE':' CASO QUANDO a.PolicySignedDateTime IS NOT NULL THEN ... ELSE ... FINE' –

+1

NON l'espressione – VeNoMiS

risposta

27

Devi usare CASE

SELECT CASE WHEN Field IS NOT NULL 
    THEN 'something' 
    ELSE 'something else' 
END 
1

Prova questo:

 
SELECT 
    CASE 
    WHEN a.PolicySignedDateTime IS NOT NULL THEN a.PolicySignedDateTime 
    ELSE aq.Amount 
FROM your joined table 

Ma .... ISNULL (a.PolicySignedDateTime, aq.Amount) controllare se il tuo campo è nullo, quindi non è nullo ottieni il suo valore.

Quindi non capisco perché vuoi usare un altro modo.

+0

Ciao sì, in pratica volevo fare "ISNOTNULL (a.PolicySignedDateTime, aq.Amount)" ma non esiste – Bobby

+0

Usa CASE come ho scritto nella mia risposta;) –

2

Esiste l'espressione COALESCE (sebbene non la funzione https://msdn.microsoft.com/en-us/library/ms190349.aspx) verifica gli argomenti in ordine e continua a farlo finché non trova il valore NULL e lo restituisce.

esempio di utilizzo:
SELECT COALESCE(NULL, NULL, 5)--returns 5

Nel tuo caso:
COALESCE(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',