2013-10-08 13 views
24

Ich habe diesen Code in meiner select-AnweisungGibt es eine umgekehrte Funktion zu ISNULL in SQL Server? Zu tun Ist nicht null?

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

Aber ich möchte sehen, ob "a.PolicySignedDateTime" nicht null ist. Gibt es dafür eine einfache Funktion, die keine "if" -Anweisung benötigt?

Prost Jungs

+3

Verwenden 'CASE' Ausdruck:' CASE WHEN a.PolicySignedDateTime DANN IS NOT NULL ... ELSE ... END' –

+1

NICHT der Ausdruck – VeNoMiS

Antwort

27

Sie haben CASE

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

Versuchen Sie, diese zu nutzen:

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

Aber .... ISNULL (a.PolicySignedDateTime, aq.Amount) überprüfen, ob Ihr Feld ist null, also ist es nicht null Sie erhalten seinen Wert.

Also ich verstehe nicht wirklich, weil Sie einen anderen Weg verwenden möchten.

+0

Hi yeah, im Grunde wollte ich tun "ISNOTNULL (a.PolicySignedDateTime, aq.Amount)" aber es existiert nicht – Bobby

+0

Verwenden Sie CASE, wie ich in meiner Antwort geschrieben habe;) –

2

Es ist der COALESCE Ausdruck (obwohl nicht Funktion https://msdn.microsoft.com/en-us/library/ms190349.aspx) Testen Sie die Argumente in der Reihenfolge und machen Sie es weiter, bis der Wert nicht NULL findet und gibt es zurück.

Beispiel Nutzung:
SELECT COALESCE(NULL, NULL, 5)--returns 5

In Ihrem Fall:
COALESCE(a.PolicySignedDateTime,aq.Amount) AS 'Signed Premium',