SQL创建函数

时间:2016-11-03 06:48:44

标签: sql sql-server

想要为同一颜色创建平均产品标准成本的函数,并使用' red'去测试 。但NULL返回了。 如果只运行SELECTFROMWHEREGROUP 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') 

请让我知道如何解决,谢谢!

1 个答案:

答案 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