繁体   English   中英

SQL Server 2014是否支持ISNOTNULL()之类的功能?

[英]Does SQL Server 2014 support functions such as ISNOTNULL()?

您不知道如何在MS SQL中将ISNULL()更改为ISNOTNULL()吗? 像IFNULL一样?

我需要一步来做。

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

谢谢。

我认为您出了点问题:

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() ,如果条件已满,则返回NULL

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

最后但并非最不重要的一点是COALESCE() 它将返回参数列表的第一个非空值:

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

您是指IS NULLIS NOT NULL吗?
如-

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

我不明白您为什么要尝试以这种方式获取不为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)

决赛前

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM