gpt4 book ai didi

sql - 强制 COALESE(NULL,NULL) 返回 NULL

转载 作者:行者123 更新时间:2023-12-02 19:37:41 28 4
gpt4 key购买 nike

在 SQL 服务器中考虑到以下事实:Col1 和 Col2 包含数值和 NULL 值

SELECT 
COALESCE(Col1,Col2)

返回一个错误:“COALESCE 的至少一个参数必须是一个不是 NULL 常量的表达式。”考虑到 Col1 和 Col2 是 NULL,我想在这种情况下强制它返回 NULL 值。

解决方法对我来说似乎不够优雅/效率低下:

SELECT
NULLIF(COALESCE(Col1 ,Col2 ,''),'')

请注意,Col1 和 Col2 是数字字段,不能将 '' 作为值。

还有什么建议吗?

谢谢你的帮助

最佳答案

此代码有效:

SELECT COALESCE(Col1, Col2) 
FROM . . . -- references here that define COL1 and COL2

如果两列都是 NULL,它将返回 NULL(在您的情况下键入为整数)。

唯一一次出现您提到的错误是当列显式 NULL 时。甚至计算似乎也能解决这个问题:

select coalesce(null + 3, null)
--> NULL rather than an error

以下甚至返回 NULL 而不是错误:

declare @col1 int;
declare @col2 int;

select coalesce(@col1, @col2);

Here是一个数据库<> fiddle 。

关于sql - 强制 COALESE(NULL,NULL) 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60817295/

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