gpt4 book ai didi

mysql - MySQL 中的 IFNULL 和 COALESCE 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:56:04 24 4
gpt4 key购买 nike

SELECT IFNULL(NULL, 'Replaces the NULL')
--> Replaces the NULL

SELECT COALESCE(NULL, NULL, 'Replaces the NULL')
--> Replaces the NULL

在这两个子句中,主要区别在于参数传递。 IFNULL 是两个参数,COALESCE 是多个参数。那么除此之外,这两者之间还有其他区别吗?

它在 MS SQL 中有何不同?

最佳答案

两者的主要区别在于 IFNULL 函数有两个参数,如果不是 NULL 则返回第一个参数,如果第一个参数是 则返回第二个参数空.

COALESCE 函数可以带两个或多个参数并返回第一个非NULL参数,如果所有参数都为null,则返回NULL,例如:

SELECT IFNULL('some value', 'some other value');
-> returns 'some value'

SELECT IFNULL(NULL,'some other value');
-> returns 'some other value'

SELECT COALESCE(NULL, 'some other value');
-> returns 'some other value' - equivalent of the IFNULL function

SELECT COALESCE(NULL, 'some value', 'some other value');
-> returns 'some value'

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'

更新: MSSQL 进行更严格的类型和参数检查。此外,它没有IFNULL 函数,而是ISNULL 函数,它需要知道参数的类型。因此:

SELECT ISNULL(NULL, NULL);
-> results in an error

SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL

MSSQL中的COALESCE函数也要求至少有一个参数不为空,因此:

SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
-> results in an error

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'

关于mysql - MySQL 中的 IFNULL 和 COALESCE 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com