gpt4 book ai didi

sql - 为什么 null||null 返回空值但 concat(null,null) 在 postgres 中返回空字符串?

转载 作者:行者123 更新时间:2023-11-29 11:36:36 38 4
gpt4 key购买 nike

<分区>

我试图理解 concat() 和 || 之间的区别在 postgres 中使用空值时。如果 concat 的两边都为 null,为什么 concat() 会返回一个空字符串?

以这个查询为例:

SELECT concat(NULL,NULL) AS null_concat, NULL||NULL AS null_pipes, 
concat(NULL,NULL) IS NULL is_concat_null, NULL||NULL IS NULL is_pipe_null

将返回:

enter image description here

我知道 concat() 会忽略空值,但如果 concat 中的所有值都是空值,那么预期结果不会是空值吗?这是 postgres 中所有函数的典型行为吗?我在文档中找不到有关此场景的任何内容。

编辑:

我以为这可能是任何字符串函数的预期结果,但事实并非如此。如果传递空值,upper() 和 left() 都会返回空值:

SELECT concat(NULL), NULL||NULL, UPPER(null), left(NULL,1)

结果:

enter image description here

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