想要为同一颜色创建平均产品标准成本的函数,并使用' red
'去测试 。但NULL返回了。
如果只运行SELECT
,FROM
,WHERE
,GROUP BY
,它将运行文件并返回一个值。
这是我的代码:
CREATE FUNCTION avgv (@Color CHAR)
RETURNS CHAR
AS
BEGIN
DECLARE @AVG CHAR ;
SET @AVG = (SELECT P.Color AVG(P.StandardCost)
FROM AdventureWorksLT.SalesLT.Product P
WHERE P.Color = @Color
GROUP BY Color)
Return @AVG
END
GO
SELECT dbo.avgv('red')
请让我知道如何解决,谢谢!
答案 0 :(得分:1)
输入参数:char - > varchar(100)
退货 - > char - > int为整数结果/ decimal(18,2)表示浮点结果
删除组由
功能
CREATE FUNCTION avgv (@Color varchar(100))
RETURNS real
AS
BEGIN
DECLARE @AVG real;
SET @AVG = (SELECT AVG(ISNULL(P.StandardCost, 0))
FROM AdventureWorksLT.SalesLT.Product P
WHERE P.Color = @Color)
Return @AVG
END
GO
SELECT dbo.avgv('red')
程序
CREATE PROCEDURE avgv (@Color varchar(100))
AS
BEGIN
SELECT AVG(ISNULL(P.StandardCost, 0))
FROM AdventureWorksLT.SalesLT.Product P
WHERE P.Color = @Color
END