当前位置: 首页 > 面试题库 >

从SQL函数获取单个值时,如何将NULL更改为0?

武峻熙
2023-03-14
问题内容

我有一个查询,计算两个日期之间所有项目的价格。这是select语句:

SELECT SUM(Price) AS TotalPrice 
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)

您可以假定所有表均已正确设置。

如果我在两个日期之间进行选择,并且在该日期范围内没有任何项目,则该函数返回NULL作为TotalPrice而不是0。

我如何确保如果找不到记录,则返回0而不是NULL?


问题答案:

大多数数据库服务器都有一个COALESCE函数,该函数将返回非空的第一个参数,因此下面的操作应该可以满足您的要求:

SELECT COALESCE(SUM(Price),0) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)

由于似乎有很多关于

如果没有行匹配,COALESCE / ISNULL仍将返回NULL,请尝试以下查询,您可以按原样直接将其复制并粘贴到SQL Server中:

SELECT coalesce(SUM(column_id),0) AS TotalPrice 
FROM sys.columns
WHERE (object_id BETWEEN -1 AND -2)

请注意,where子句将sys.columns中的所有行都排除在考虑范围之外,但是’sum’运算符仍然导致返回的单行为null,该行合并为固定为0的单行。



 类似资料:
  • 我有一个DataFrame,它由单个列和单个条目组成。有没有比以下更直接的方法来获取该单个值:

  • 问题内容: 表:客户 我想将列从更改为`VARCHAR2(1000) 我尝试也 还 如果数据类型不是Clob,但通常会正常工作,但由于我使用的是oracle toad / apex,所以我得到了。 问题答案: 您可以尝试以下方法: 添加一个新列作为varchar2 将UPDATE CLOB名称更新为varchar2列; 经过 测试数据 : DROP CLOB列 将varchar2列重命名为CLOB

  • 问题内容: 我在python上有一个数组A,它具有由numpy.nan创建的一些nan值。我想使用将所有nan值设置为零。它根本不会改变数组。这是为什么? 问题答案: 您要: 您的代码存在的问题是(根据IEEE),它不等于任何东西,甚至不等于它本身。 附带一提的是, ->(+/-无限) ->(不是无穷大或NaN) ->(+无限) ->(-无限)

  • Document.QuerySelector(“Button”).AddEventListener(“Click”,function(){console.log(“Click Détecté”);

  • 问题内容: 例 问题,如何获得单一值,例如: 问题答案: 查看您的中的键和缩进: …等等