SQL Server 2014是否支持ISNOTNULL()等功能?

时间:2016-12-06 09:13:56

标签: sql sql-server tsql null sql-server-2014

你不知道如何在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

感谢。

4 个答案:

答案 0 :(得分:2)

我认为你出了点问题:

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'

答案 1 :(得分:1)

您指的是IS NULLIS NOT NULL吗? 如在 -

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

答案 2 :(得分:1)

我不明白你为什么要这样检索if not not null。 TaPassAccount函数有助于将viewport值替换为默认值

我建议尝试这样的事情:

ISNULL()

希望这可以提供帮助。

答案 3 :(得分:0)

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

在最终设定之前