我正在尝试在SQL Server中创建一个函数。该函数返回给定年份和月份的总销售额。如果返回数据为NULL,则返回0。
但是,我无法在我的函数中执行NULL然后为零的条件。我可以这样简单地写RETURN ISNULL(@totalsale,'0');
吗?
请帮助我检查代码。谢谢!
CREATE FUNCTION uf_GetSales
(@yearp int, @monthp int)
RETURNS int
AS
BEGIN
DECLARE @totalsale int;
SELECT @totalsale = sum(TotalDue) FROM SalesOrderHeader
WHERE YEAR(OrderDate) = @yearp AND MONTH(OrderDate) = @monthp
GROUP BY YEAR(OrderDate), MONTH(OrderDate)
RETURN ISNULL(@totalsale,'0');
END
虽然可以这样写:
RETURN ISNULL(@totalsale,'0');
我建议:
RETURN COALESCE(@totalsale, 0);
即,保持类型一致。我喜欢它COALESCE()
,ISNULL()
因为它是标准的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句