定西建设厅网站,网站后台找不到了怎么办,电脑连上网打不开网页,谷建网站建设模板4.1 在查询中使用函数 在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句#xff0c;但是为了更方便快捷地完 成大量的任务#xff0c;SOLServer提供了一些内部函数#xff0c;可以和SOLServer的SELECT语句联合使用#xff0c;也可 以与UPDATE和INSERT一起使用但是为了更方便快捷地完 成大量的任务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。
1SUM。SUM函数返回表达式中所有数值的总和它只能用于数字类型的列不能够汇总 字符日期等其他数据类型。
2AVG。AVG函数返回表达式中所有数值的平均值它也只能用于数字类型的列.
3MAX和MN。MAX函数返回表达式中的最大值MN函数返回表达式中的最小值它 们都可以用于数字型、字符型及日期/时间类型的列。
4COUNT。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 种类蔬菜
查询结果