转自:http://www.maomao365.com/?p=4390

利用nullif函数

coalesce( expression [ ,…n ] )返回其参数中第一个非空表达式。

下表列出
SET 与 SELECT 的区别

mysql中coalesce()的使用技巧小结

  coalesce()解释

  返回参数中的第一个非空表达式(从左向右依次类推);
 mysql中coalesce()的使用技巧小结

  使用示例

  a,b,c三个变量。

  select coalesce(null,2,3); // Return 2

  select coalesce(null,null,3); // Return 3

  select coalesce(1,2,3); // Return 1

  通过上面例子可以看出,他的作用是将返回传入的参数中第一个非null的值,再比如

  SELECT COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);

  – Return 1

  如果传入的参数所有都是null,则返回null,比如

  SELECT COALESCE(NULL, NULL, NULL, NULL);

  – Return NULL

  这个参数使用的场合为:假如某个字段默认是null,你想其返回的不是null,而是比如0或其他值,可以使用这个函数

  SELECT COALESCE(字段名,0) as value from
t;//(如果数据库提成字段默认值不是为0值的话肯定是开发

coalesce()解释
返回参数中的第一个非空表达式(从左向右依次类推);
mysql中coalesce()的使用技巧小结 使用示例…

一、coalesce函数简介

nullif函数有两个参数,定义如下:

 

  SELECT SET
同时对多个变量同时赋值时 支持 不支持
表达式返回多个值时 将返回的最后一个值赋给变量 出错
表达式未返回值时 变量保持原值 变量被赋null值

coalesce 系统函数,比ISNULL更强大,更方便的系统函数,
coalesce可以接收多个参数,返回最左边不为NULL的参数,当所有参数都为空时,则返回NULL
coalesce是最优isnull写法解决方案
以前我们使用isnull对两列或多列数据进行为空返回时候,需要多次使用isnull函数
—————————————————————————-
例:
declare @a varchar(10),@b varchar(10),@c varchar(10)
当@a为null时,我们查看@b是否为NULL,不为null,则返回@b ,否则查看@c
不为NULL,则返回@c ,否则返回NULL

NULLIF( expression , expression )

Select coalesce(null,null,’1′,’2′) //结果为 1

(1).同时对多个变量同时赋值时

select isnull(@a,isnull(@b,isnull(@c,null)))
/*当需判断的参数越多时,我们的函数表达式就会变的异常复杂*/

其作用就是:如果两个指定的表达式相等,就返回null值。

coalesce(expression1**,**…n) 与此 case函数等效:

declare @a varchar(128), @b varchar(128)
SET @a=’ABC’,@b=’EFG’ GO –报错:消息 102,级别 15,状态
1,第 3 行 ‘,’ 附近有语法错误。

但我们使用coalesce函数,会使此 表达式变的优美,通俗易懂
select coalesce(@a,@b,@c)
——————————————————————————–

看一示例:

 

declare @a varchar(128), @b varchar(128) SELECT @a=’ABC’,@b=’EFG’ GO –正确运行

相关文章