在SQL SERVER中,考虑到: Col1和Col2包含数值和空值。
SELECT
COALESCE(Col1,Col2) 返回错误:“COALESCE的参数中至少有一个必须是非空常量的表达式。”考虑到Col1和Col2为NULL,我想在本例中强制它返回NULL值。
对我来说,这个变通方法似乎并不优雅/效率低下:
SELECT
NULLIF(COALESCE(Col1 ,Col2 ,''),'') 请注意,Col1和Col2是数值字段,不能将'‘作为值。
还有其他建议吗?
谢谢你的帮助
发布于 2020-03-24 00:15:23
下面的代码可以工作:
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是一个db<>fiddle。
https://stackoverflow.com/questions/60817295
复制相似问题