2016-12-06 7 views
0

Wissen Sie nicht, wie ISNULL() zu ISNOTNULL() in MS SQL geändert wird? Etwas wie IFNULL?Unterstützt SQL Server 2014 Funktionen wie ISNOTNULL()?

Ich muss es in einem Schritt tun.

Set @EMAILhtml = @CSS + @TEXT1 + isnull(@TEXT1,'') + isnull(@table1,'') + isnull(@text2,'') + isnull(@table2,'') + @TEXT3 

Aber ich brauche so etwas wie

Set @EMAILhtml = @CSS + @TEXT1 + isNOTnull(@TEXT1,'') + isnull(@table1,'') + isnull(@text2,'') + isnull(@table2,'') + @TEXT3 

Dank.

+0

Das macht keinen Sinn. 'isnull' ist das gleiche wie' coalesce', aber für 2 Parameter. Es ist nur ein Standardwert im Falle eines NULL. z.B. isnull (x, 'Hey! x war null!'). Ähnlich wie 'case wenn x nicht null ist, dann x else 'Hey! x war null! ' Ende –

Antwort

1

beziehen Sie sich auf IS NULL und IS NOT NULL?
wie in -

select * from t where x is null 
select * from t where x is not null 
2

Ich glaube, Sie haben etwas falsch:

ISNULL() wird verwendet für NULL bei NULL

DECLARE @v1 VARCHAR(10)='test'; 
SELECT ISNULL(@v1,'default') --returns `test`; 
SET @v1=NULL; 
SELECT ISNULL(@v1,'default') --returns `default`; 

Überprüfung einen Standardwert gesetzt mit geschieht IS NULL. Das Gegenteil ist der IS NOT NULL

DECLARE @v1 VARCHAR(100)=NULL; 
SELECT CASE WHEN @v1 IS NULL THEN 'v1 is null' END 

Die dritte Option ist in diesem Zusammenhang NULLIF(), die NULL zurückgibt, wenn eine Bedingung

DECLARE @v1 VARCHAR(10)='test'; 
SELECT NULLIF(@v1,'test'); --returns NULL, because @v1='test' 

Und last fullfilled ist aber nicht zuletzt ist es COALESCE(). Es wird den ersten nicht-Null-Wert aus einer Liste von Parametern zurück:

DECLARE @v1 VARCHAR(10)=NULL; 
DECLARE @v2 VARCHAR(10)=NULL; 
DECLARE @v3 VARCHAR(10)='test'; 
SELECT COALESCE(@v1,@v2,@v3); --returns 'test' 
1

Ich verstehe nicht, warum Sie abrufen versuchen, wenn nicht diese Art und Weise null. Die ISNULL() Funktion Hilfe eines NULL Wert auf einen Standard ein

Ich schlage vor, zu ersetzen, so etwas zu versuchen:

CASE WHEN column IS NOT NULL THEN 'Hey is not null' ELSE 'Sorry, is null!' END

Hope this helfen könnte.

0
set @TEXT1 = (case when @table1 is null then null else @TEXT1 end) 

vor dem letzten Satz