NULLIF (Transact-SQL)

翻译 2013年12月04日 16:31:31

NULLIF (Transact-SQL)

如果两个指定的表达式等价,则返回空值。

语法

 
NULLIF ( expression , expression )

备注

如果两个表达式相等且结果表达式为 NULL,则 NULLIF 等价于 CASE 的搜索函数。

参数

expression

常量、列名、函数、子查询或算术运算符、位运算符以及字符串运算符的任意组合。

有关详细信息,请参阅表达式(Transact-SQL)

返回类型

返回类型与第一个 expression 相同。

如果两个表达式不等价,则 NULLIF 返回第一个 expression 的值。如果表达式等价,则 NULLIF 返回第一个 expression 类型的空值。


示例

以下示例创建 budgets 表以显示部门 (dept) 的当年预算 (current_year) 以及上一年预算 (previous_year)。对于当年预算,那些同上一年相比预算没有改变的部门使用 NULL,那些预算还没有确定的部门使用 0。若要只计算那些接收预算的部门的预算平均值,并包含上一年的预算值(当 current_year0 时,使用 previous_year 的值),请组合使用 NULLIFCOALESCE 函数。

  复制代码
USE AdventureWorks;
GO
IF EXISTS (SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
      WHERE TABLE_NAME = 'budgets')
   DROP TABLE budgets;
GO
SET NOCOUNT ON;
CREATE TABLE budgets
(
   dept            tinyint   IDENTITY,
   current_year      decimal   NULL,
   previous_year   decimal   NULL
);
INSERT budgets VALUES(100000, 150000);
INSERT budgets VALUES(NULL, 300000);
INSERT budgets VALUES(0, 100000);
INSERT budgets VALUES(NULL, 150000);
INSERT budgets VALUES(300000, 250000);
GO  
SET NOCOUNT OFF;
SELECT AVG(NULLIF(COALESCE(current_year,
   previous_year), 0.00)) AS 'Average Budget'
FROM budgets;
GO

下面是结果集: 

   
Average Budget                           
---------------------------------------- 
212500.000000

(1 row(s) affected)


相关文章推荐

SQL的IsNull 和 NullIf使用说明

首先看看SQL SERVER 联机丛书的信息,其中我们该注意的地方我用红字标出: ISNULL 使用指定的替换值替换 NULL。 语法 ISNULL ( check_expression ,...

DATEPART (Transact-SQL)

返回表示指定 date 的指定 datepart 的整数。 有关所有 Transact-SQL 日期和时间数据类型和函数的概述,请参阅日期和时间数据类型及函数 (Transact-SQL)。  T...

sys.sysobjects (Transact-SQL)

在数据库中创建的每个对象(例如约束、默认值、日志、规则以及存储过程)都对应一行。  重要提示 将此 SQL Server 2000 系统表作为一个视图包含进来是...

Transact-SQL存储过程

Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用。当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句。这样就可以提高存储过程的性能。  ...

Transact-SQL 常用函数

(1)DECLARE 两种用法: 1>: DECLARE @usid VARCHAR(50),@usna NVARCHAR(100),@grna NVARCHAR(100); 2>: DECL...

Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理

Transact-SQL 代码中的错误可使用 TRY…CATCH 构造处理,此功能类似于 Microsoft Visual C++ 和 Microsoft Visual C# 语言的异常处理功能。TR...

Transact-SQL编程规范

Transact-SQL编程规范   1.  概述 1.1. 基本原则 以大小写敏感编写SQL语句。 尽量使用Unicode 数据类型。 优先使用连接代替子查询或嵌套查询。 尽量使用参数...

COMMIT TRANSACTION (Transact-SQL)

本主题适用于:SQL Server(从 2008 开始)Azure SQL 数据库Azure SQL 数据仓库并行数据仓库 标志一个成功的隐性事务或显式事务的结束。 如果 @@TRANC...

Transact-SQL编程

Transact-SQL编程 Transact-SQL (1)数据定义语言(DDL) create tabl/*创建表*/ alter table/*修改表*/ drop table/*删除表*/ (...

Transact-SQL编程规范

Transact-SQL编程规范 1. 概述 1.1. 基本原则 以大小写敏感编写SQL语句。 尽量使用Unicode 数据类型。 优先使用连接代替子查询或嵌套查询。 尽量使用参数化S...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)