除了一个是系统函数,一个是自定义函数的区别外,他们在使用上有什么区别吗?例如:有一个自定义函数和一个table如下: create function myFunction(@parm nvarchar(50)) returns decimal(20,8) as begin declare @returnVal decimal(20, 8) select @returnVal = sum(field2) from table where field1 = @parm return @returnVal end--talbe1格式如下: table(field1 nvarchar(50), field2 int, ... , field10) 那么该下面的语句是否含义相等呢?--Use sum select sum(field2) from table1 group by field1--Use myFunction select myFunction(field1) from table1 group by field1主要的问题实际上是想问,自定义函数和聚合函数在使用上语法上有什么区别吗?
自定义函数由开发者编写,满足业务需求,可在多种场景应用。
聚合多数用于统计上的,如AVG,SUM,COUNT等等
自定义函数是为了实现你要的某一个功能而写的,主要是为了把问题整体分解,并且实现代码复用
自定义函数是为了实现你要的某一个功能而写的,主要是为了实现代码复用
sql 2005也可自定义聚合函数.
create function myFunction(@parm nvarchar(50)) returns decimal(20,8)
as
begin
declare @returnVal decimal(20, 8)
select @returnVal = sum(field2) from table where field1 = @parm
return @returnVal
end--talbe1格式如下:
table(field1 nvarchar(50), field2 int, ... , field10)
那么该下面的语句是否含义相等呢?--Use sum
select sum(field2) from table1 group by field1--Use myFunction
select myFunction(field1) from table1 group by field1主要的问题实际上是想问,自定义函数和聚合函数在使用上语法上有什么区别吗?
所有者dbo...不太懂……
自定义函数是不是在select查询的时候参数传不进去的?
select myFunction(field1) from table1 group by field1
----------------
这样用不行吧。
因为你用到group,分组了就只能用聚合函数。
聚集函数必须用GROUP BY,是对本表(或连接表,下同)一批记录的数据进行计算
自定义函数一定不能用GROUP BY,是对本表一条记录的数据进行计算。
====================================================
不一定吧?
查了下,邹老大写过这方面文章,不过‘自定义函数一定不能用GROUP BY’在sqlserver2005已解决了