SQL Server 2014是否支持ISNOTNULL()等函数?
问题描述:
你不知道如何在MS SQL中更改ISNULL()到ISNOTNULL()? 有点像IFNULL?SQL Server 2014是否支持ISNOTNULL()等函数?
我需要一步完成。
Set @EMAILhtml = @CSS + @TEXT1 + isnull(@TEXT1,'') + isnull(@table1,'') + isnull(@text2,'') + isnull(@table2,'') + @TEXT3
但我需要这样的东西
Set @EMAILhtml = @CSS + @TEXT1 + isNOTnull(@TEXT1,'') + isnull(@table1,'') + isnull(@text2,'') + isnull(@table2,'') + @TEXT3
感谢。
答
你指的是IS NULL
和IS NOT NULL
?
在 -
select * from t where x is null
select * from t where x is not null
答
我觉得你有一些错误:
ISNULL()
用于在NULL
DECLARE @v1 VARCHAR(10)='test';
SELECT ISNULL(@v1,'default') --returns `test`;
SET @v1=NULL;
SELECT ISNULL(@v1,'default') --returns `default`;
检查NULL
的情况下设置默认值与实现IS NULL
。相反的是IS NOT NULL
DECLARE @v1 VARCHAR(100)=NULL;
SELECT CASE WHEN @v1 IS NULL THEN 'v1 is null' END
在这种情况下的第三个选项是NULLIF()
,如果条件fullfilled
DECLARE @v1 VARCHAR(10)='test';
SELECT NULLIF(@v1,'test'); --returns NULL, because @v1='test'
而且最后但并非最不重要有COALESCE()
返回NULL
。它会返回paramters列表的第一个非空值:
DECLARE @v1 VARCHAR(10)=NULL;
DECLARE @v2 VARCHAR(10)=NULL;
DECLARE @v3 VARCHAR(10)='test';
SELECT COALESCE(@v1,@v2,@v3); --returns 'test'
答
我不明白为什么你想找回,如果不为null这种方式。该ISNULL()
功能帮助一个NULL
值替换到一个默认的
我建议尝试类似的东西:
CASE WHEN column IS NOT NULL THEN 'Hey is not null' ELSE 'Sorry, is null!' END
希望这可以帮助。
答
set @TEXT1 = (case when @table1 is null then null else @TEXT1 end)
决胜盘
这没有任何意义了。 'isnull'与'coalesce'相同,但是对于2个参数。这只是一个NULL的情况下的默认值。例如isnull(x,'Hey!x is null!')。类似于'x不为空的情况,那么x其他'嘿! x是空的!' end' –