需要帮助从SQL查询中创建一个函数

dav*_*ine 2 sql sql-server sql-server-2008

我对每个国家/地区使用以下查询.如何创建一个函数来生成传递给它的每个国家/地区的平均值?

-- pepsi drink database
select avg(monthly_sales)
from world_sales
where product name like '%juice%'
and country = 'germany' -- this can be japan, usa, china etc
Run Code Online (Sandbox Code Playgroud)

Ric*_*iwi 6

create function dbo.getAverageMonthlySaleForCountry(@country varchar(100))
returns decimal(20,4)
as
begin
  return (
    select avg(monthly_sales)
    from world_sales
    where product name like '%juice%'
    and country = @country
  )
end
GO
Run Code Online (Sandbox Code Playgroud)

但请注意,这样的SCALAR函数在性能方面的用途有限(读:它对性能的影响非常大).小心使用.