SQL Server聚合函数和自定义函数

前言

在SQL server中不仅可以可以使用系统自带的函数(时间函数、聚合函数、字符串函数等等),还可以根据需要自定义函数。

一.聚合函数

聚合函数执行一个或多个值的计算并返回单个值。 聚合函数通常与SELECT语句的GROUP BY子句和HAVING子句一起使用。

1.SQL Server常用的聚合函数

编号 聚合函数 描述
1 MAX()函数 MAX()函数返回集合中非NULL值中的最大值。
2 MIN()函数 MIN()函数返回集合中非NULL值中的最小值。
3 AVG()函数 AVG()函数用于计算集合中非NULL值的平均值。
4 COUNT()函数 COUNT()函数返回集合中的行数,包括具有NULL值的行。
5 SUM()函数 SUM()函数返回集合中所有非NULL值的总和。
6 STDEV()函数 STDEV()函数返回所提供表达式的所有值的统计标准偏差,但基于数据总体的样本。
7 VAR()函数 VAR()函数根据指定总体的样本,返回表达式中值的统计方差。

2.SQL Server聚合函数语法

以下是聚合函数的语法:

aggregate_function_name(DISTINCT | ALL expression)

在这个语法中;

首先,指定要使用的聚合函数的名称,例如:AVG,SUM和MAX。
其次,如果只想在计算中考虑不同的值,则使用DISTINCT;如果在计算中考虑所有值,则使用ALL。 默认情况下,如果未指定任何修饰符,则使用ALL。
第三,expression可以是表的列,也可以是由具有算术运算符的多个列组成的表达式。

二.自定义函数

1.定义
用户自定义函数的类型:
1、标量值函数(返回一个标量值)

2、表格值函数(内联表格值函数、多语句表值函数,返回一个结果集即返回多个值)

2.基本原理

用户自定义函数 是一个例程,它接受参数、执行操作并返回该操作的结果。根据定义,结果可以是标量值(单个)或表。

a.优点

  1. 可以把复杂的逻辑嵌入到查询中。
  2. 可以为复杂的表达式创建新函数。
  3. 可以运用在一个表达式或 SELECT 语句的 FROM 子句中,并且还可以绑定到架构。

b.缺陷
该函数一旦误用会产生潜在的性能问题。必须针对WHERE子句的每一行执行的任何函数,不管是用户定义的函数还是系统函数,都将减慢执行速度。

3.举例说明

–自定义函数–创建函数

go
create function convert_sex
(
@sex bit
)
returns varchar(4)--返回的数据类型
as
begin
 declare @rsex varchar(4)
 if(@sex=1)
     select @rsex='男'
 else
     select @rsex='女'
	 
	 return @rsex
end
--调用方法
select *,dbo.convert_sex(Sex) from Customers

1显示为男生,2显示为女生
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/KD6ER/article/details/106262719