SQL语句–NULL(2)
本篇主要想说下 涉及到null的计算
null+任何值 返回值均为:null
eg:null+0=null 0+0=0
下面我们创建个函数看下效果
(关于标量函数、表值函数在 简单函数书写举例我有详细讲解,需要的可以去看下)
--------------------------------创建函数 A+B --------------------
CREATE FUNCTION TEST01(@A INT,@B INT) RETURNS INT
AS
BEGIN
RETURN @A+@B
END
GO
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(0,0)
返回结果:
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(NULL,0)
返回结果:
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(NULL,NULL)
返回结果:
也正是因为NULL不论加什么值都是NULL,
所以平时为了方便定位问题,我们一般会选择将NULL值转化为0
这里就会用到一个函数 isnull()
上一篇:NULL与’ ’
这里有提到 isnull()的具体写法
下面我们对之前写的函数稍加改造
ALTER FUNCTION TEST01(@A INT,@B INT) RETURNS INT
AS
BEGIN
RETURN ISNULL(@A,0)+ISNULL(@B,0)
---当@A为NULL时,返回0,当@A不为NULL时,返回@A
END
GO
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(0,0)
返回结果:
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(NULL,0)
返回结果:
--------------------------------查询函数 A+B --------------------
SELECT DBO.TEST01(NULL,NULL)
返回结果: