mysql 什么版本开始支持mysql coalesce函数

1199人阅读
Mysql(33)
很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用,本文主要讲解其中的一些基本使用:
&首先看看联机丛书的简要定义:
返回其参数中第一个非空表达式
如果所有参数均为 NULL,则 COALESCE 返回 NULL。至少应有一个 Null 值为 NULL 类型。尽管 ISNULL 等同于 COALESCE,但它们的行为是不同的。包含具有非空参数的 ISNULL 的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL。在 SQL
Server 中,若要对包含具有非空参数的 COALESCE 的表达式创建索引,可以使用 PERSISTED 列属性将计算列持久化,如以下语句所示:
下面来看几个比较有用的例子:
首先,从MSDN上看看这个函数的使用方法,coalesce函数(下面简称函数),返回一个参数中非空的值。如:
由于两个参数都为null,所以返回getdate()函数的值,也就是当前时间。即返回第一个非空的值。由于这个函数是返回第一个非空的值,所以参数里面必须最少有一个非空的值,如果使用下面的查询,将会报错:
然后来看看把函数应用到Pivot中,下面语句在AdventureWorks&数据库上运行:
会得到下面的结果:
如果想扭转结果,可以使用下面的语句:
使用函数来执行多条SQL命令:
当你知道这个函数可以进行扭转之后,你也应该知道它可以运行多条SQL命令。并且使用分号来区分独立的操作。下面语句是在Person架构下,有名字为Name的列的值:
还有一个很重要的功能:。当你尝试还原一个库,并发现不能独占访问时,这个功能非常有效。我们来打开多个窗口,来模拟一下多个连接。然后执行下面的脚本:
结果如下:
然后你可以把结果复制出来,然后一次性杀掉所有session。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:251287次
积分:3927
积分:3927
排名:第7872名
原创:119篇
转载:134篇
评论:14条
(51)(4)(8)(8)(6)(16)(10)(19)(4)(8)(47)(77)关于mysql中替代null的IFNULL()与COALESCE()函数详解-mysql教程-PHP中文网QQ群微信公众号关于mysql中替代null的IFNULL()与COALESCE()函数详解这篇文章主要给大家介绍了关于中替代的IFNULL()与COALESCE()的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看看吧。在MySQL中isnull()函数不能作为替代null值! 如下: 首先有个名字为business的表: SELECT ISNULL(business_name,'no business_name') AS bus_isnull FROM business WHERE id=2直接运行就会报错:错误代码: 1582Incorrect parameter count in the call to native function 'isnull'所以,isnull()函数在mysql中就行不通了。可以用ifnull()和coalesce()代替。如下: 使用ifnull()函数:SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=2运行结果: 当的值不为null时:SELECT IFNULL(business_name,'no business_name') AS bus_ifnull FROM business WHERE id=1结果如下: 使用coalesce()函数:SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=2结果如下:
当查询值不为null时:SELECT COALESCE(business_name,'no business_name') AS bus_coalesce FROM business WHERE id=1其中:coalesce()还可以返回第一个不为null的值。如下:SELECT COALESCE(business_name,district_id,id) AS bus_coalesce FROM business WHERE id=2那么,isnull()在mysql中怎么用呢?答案就是用在where后面。如下:SELECT * FROM business WHERE ISNULL(business_name)结果如下: 同样,is null 和is not null 也是用在where后面。SELECT * FROM business WHERE business_name IS NULL结果如下: SELECT * FROM business WHERE business_name IS NOT NULL总结以上就是关于mysql中替代null的IFNULL()与COALESCE()函数详解的详细内容,更多请关注php中文网其它相关文章!375点赞收藏分享:.&猜你喜欢12345678910
PHP中文网:独家原创,永久免费的在线,php技术学习阵地!Copyright
All Rights Reserved | 皖B2-QQ群:关注微信公众号mysql coalesce函数 - 明日何其多 - 博客园
&COALESCE函数从值列表中返回第一个非NULL的值,当遇到NULL值时将其替换为0。 coalesce(str1,str2....);
e.g. & 需要在表中查出所有比'WARD'提成(COMM)低的员工,提成为NULL的员工也包括在内。 (个人意见,如果数据库提成字段默认值不是为0值的话肯定是开发那个的错)。
select ename,comm from emp where coalesce(comm,0) & (select comm from emp whrer ename ="WARD");
  结果:
+--------+------+
+--------+------+
| TURNER |
| MILLER | NULL |
+--------+------+
12 rows in set
返回非NULL值:
select ename, comm,coalesce(comm,0) from emp where coalesce(comm,0) & (select comm from emp where ename = 'WARD');
+--------+------+------------------+
| comm | coalesce(comm,0) |
+--------+------+------------------+
| TURNER |
| MILLER | NULL |
+--------+------+------------------+
12 rows in set
阅读(...) 评论()mysql中的coalesce用法 - jackyrong - ITeye博客
博客分类:
在mysql中,其实有不少方法和函数是很有用的,这次介绍一个叫coalesce的,拼写十分麻烦,但其实作用是将返回传入的参数中第一个非null的值,比如
&& SELECT COALESCE(NULL, NULL, 1);
-- Return 1
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(field_name,0)
浏览: 4923831 次
来自: 广州
如果有多个@Primary 会怎么样?
今天也遇到这个问题了,果然好用,谢谢分享。
spring用起来好复杂啊,东西好多多多多多多多多多多多多多多 ...
hnlixf 写道
但假如又有一个叫order类的,需要访问 ...
请使用&mvc:annotation-driven&gt ...}

我要回帖

更多关于 mysql最新版本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信