本文介绍: 在查询时还会经常碰到的是取某些列的最大值最小值平均值信息,有时候需要计算出 究竟查询到多少行数据项,这个时候查询的“统计数据”是用户比较关心的,因此 SOL Server 提 供了聚合函数,聚合函数能够基于列进行计算,并返回单个值。上面所有这些函数可以在T-SOL中混合使用,得到符合特殊要求的查询输出。在SQL Server中不能直接对日期运用数学函数需要使用日期函数操作日期值,例如,如果执 行一个诸如“当前日期+1”的语句,SQL Server无法理解要增加的是一日、一月还是一年。

4.1 在查询使用函数

       在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句,但是为了更方便快捷地完 成大量的任务,SOLServer提供了一些内部函数,可以和SOLServer的SELECT语句联合使用,也可 以与UPDATE和INSERT一起使用,可以进行类型转换、日期处理、数学计算实现系统功能。   

      根据用途,把函数分为五类,分别是系统函数、字符串函数、日期函数、聚合函数与数学函数。

4.1.1系统函数

系统函数用来获取有关SOL Server 中对象设置的系统信息,如表4-1所示,列出了经常使用 的一些系统函数。

      上面所有这些函数,可以在T-SOL中混合使用,得到符合特殊要求的查询输出。 CONVERT和CAST的类型转换使用频繁,在很多场合均可使用。尤其是在网站应用中,常常需 要将各种类型数据转换成指定格式字符串然后拼接显示内容

4.1.2字符串函数

     字符串函数用于控制返回用户的字符串,这些功能用于字符型数据。如表4-2所示,列出 了部分常用的字符串函数。

     字符串在信息处理时有特殊的地位,几乎所有信息需要转换成字符串才能正确显示,尤其是不同数据拼接起来显示的使用更加广泛。 字符串拼接很简单,两个字符串之间使用“+”即可

4.1.3日期函数

      在SQL Server中不能直接对日期运用数学函数,需要使用日期函数操作日期值,例如,如果执 行一个诸如“当前日期+1”的语句,SQL Server无法理解要增加的是一日、一月还是一年。

      日期函数帮助提取日期值中的日、月及年,以便分别操作它们。如表4-3所示,列出了部分常 用的日期函数。 

4.1.4聚合函数与分组查询

     在查询时还会经常碰到的是取某些列的最大值最小值平均值信息,有时候需要计算出 究竟查询到多少行数据项,这个时候,查询的“统计数据”是用户比较关心的,因此 SOL Server 提 供了聚合函数,聚合函数能够基于列进行计算,并返回单个值。

      分组查询是指将查询结果条件分组然后使用聚合函数返回每个组的汇总信息分组查询一 般是用来满足统计需求的。

1.聚合函数 常用的聚合函数有SUM()、AVG()、MAX()、MIN()和COUNT()。

(1)SUM()。SUM()函数返回表达式中所有数值总和,它只能用于数字类型的列,不能够汇总 字符,日期等其他数据类型

(2)AVG()。AVG()函数返回表达式中所有数值平均值,它也只能用于数字类型的列.

(3)MAX()和MN()。MAX()函数返回表达式中的最大值,MN()函数返回表达式中的最小值,它 们都可以用于数字型、字符型及日期/时间类型的列。

(4)COUNT()。COUNT()函数返回表达式中非空值计数,它可以用于数字和字符类型的列。 另外,也可以使用星号(*)作为COUNT()函数的表达式,使用星号可以不必指定特定的列而计 算所有的行数

2.分组查询

      分组查询就是将表中的数据通过GROUPBY子句分类组合,再根据需要得到统计信息,如果需 要对分组结果进行筛选,只显示满足限定条件的组,需要使用HAVNG子句

      不难理解,在使用GROUPBY关键字时,在SELECT列表中可以指定项目有限的,SELECT 语句中仅允许以下几项。

> 被分组的列。

> 为每个分组返回一个值的表达式,如用一个列名作为参数的聚合函数。

      当GROUPBY子句中使用HAVING子句时,查询结果只返回满足HAVING条件的组。在一个T-SOL 语句中可以有WHERE子句和HAVNG子句,HAVNG子句与WHERE子句类似,均用于设置限定条件。 但HAVING子句和WHERE子句作用如下区别

> WHERE子句的作用是在对查询结果进行分组前,根据WHERE条件筛选数据,条件中不能包 含聚合函数。

> HAVNG子句的作用是在分组之后筛选满足条件的组,条件中经常包含聚合函数,也可以使 用多个分组标准进行分组。

      当WHERE和HAVING同在一个SELECT语句中使用时,执行顺序为“WHERE→GROUP BY一HAVING”. 案例4.12查询employee表中平均工资小于10 000的职务,前提是员工段誉不计算在内。

4.1.5数学函数

数学函数用于对数值进行代数运算,由于数学函数数量众多,不可能全部列举,如表4-4所示, 列出了 SOL Server 中常用的数学函数。

实验环境

     BDQN公司一台已经安装了 SOL Server 2016的服务器bdqn数据库包含products表,表中内容如图所示

products 表 

需求描述

> 查询出厂日期晚于2017年4月的水果信息

> 分组查询所有水果、蔬菜,坚果的总成本。

> 查询所有水果的名称出厂日期,以特定格式接字符串,如“西瓜的出厂日期是:2017/05/06”。

> 查询所有蔬菜的平均成本。

查询出厂日期晚于2017年4月的坚果信息

select 名称,出厂日期 as '晚于2017年4月出厂'
from products
where 种类='坚果' and 出厂日期<='2017-03-31'

查询结果没有该类水果

分组查询所有水果,蔬菜,坚果的总成本。

select 种类,sum(成本) as 总成本 from products group by 种类

查询结果

查询所有水果的名称出厂日期,以特定格式接字符串,如“西瓜的出厂日期是:2017/05/06

select 名称+' 的出厂日期是:'+convert(nvarchar(10),出厂日期,111) from products
where 种类='水果'

查询结果

查询所有蔬菜的平均成本。

select 种类,avg(成本) as 蔬菜平均成本 from products group by 种类 having 种类='蔬菜'

查询结果

原文地址:https://blog.csdn.net/2301_77023501/article/details/134736211

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_26174.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注