文章目录

  • 1、聚合函数
  • 2、类型转换函数
  • 3、日期函数
  • 4、数学函数
  • 5、字符函数
  • 6、其他系统函数

1、聚合函数

(1)聚合函数的概念
它是系统函数中最常用的一类函数,主要是对一组值进行计算,然后返回一个值。聚合函数主要包括SUM(求和函数)、AVG(求平均值函数)、MIN(求最小值函数)、MAX(求最大值函数)、COUNT(求数量的函数)

(2)COUNT求个数
用于计算满足条件的数据项数,返回int数据类型的值。
表达式:COUNT( {[[ all | distinct] expression ] | * } )
这里的表达式是除text、image或ntext以外任何数据类型的表达式,但不允许使用聚合函数和子查询。

其他用法:

  • count(*) 或 count(1): 返回所有的项数,包括null值和重复项。而除了此情况外,其他任何形式的count()函数都会忽略Null行。除了此情况外,其他任何聚合函数都会忽略NULL值,也就是说,AVG()参数里的值如果为Null则这一行会被忽略如计算平均值,这点要注意。
  • count(all 表达式):返回非空的项数。
  • count(distinct 表达式):返回唯一非空的项数

(3)SUM求和
只能用于精确或近似数字类型列(bit类型除外)的求和,忽略null值,不允许使用聚合函数和子查询。
语法结构:SUM( [ all | distinct ] expression )

(4)MAX求最大值
忽略null值。max函数可以使用于numeric、char、varchar、money、smallmoney、或datetime列,但不能用于bit列。不允许使用聚合函数和子查询。
语法结构:MAX( [ all | distinct ] expression )

(5)MIN求最小值
用于计算最小值,MIN函数可以适用于numeric、char、varchar或datetime、money或smallmoney列,但不能用于bit列。不允许使用聚合函数和子查询,忽略null值。
语法结构:MIN( [ all | distinct ] expression )

(6)AVG求平均值
用于计算精确型或近似型数据类型的平均值,bit类型除外,忽略null值。AVG函数计算时将计算一组数的总和,然后除以不为null的个数,得到平均值。
语法结构:AVG( [ all | distinct ] expression )
注意:

  • all:为默认值,表示对所用的数据都计算平均值。
  • distinct:每个值的唯一值计算平均值,不管相同的值出现多次,多个行相同的值仅仅出现一次作为计算。
  • expression:精确或近似值的表达式。表达式内部不允许使用子查询和其他聚合函数。

(7)求方差VAR、VARP
计算指定表达式中所有值的方差。
语法结构:VAR( [ all | distinct ] expression )

这里的expression表达式必须是一个数值表达式,不允许使用聚合函数和子查询。表达式的值是精确或近似数值类型,但不包括bit数据类型,将忽略null值。

VARP :求总体方差

(8)求标准偏差STDEV、STDEVP
语法结构:STDEV( [all | distinct ] expression )
这里的expression必须是一个数值表达式,不允许使用聚合函数和子查询。表达式的值是精确或近似数值类型,但不包括bit数据类型。将忽略null值。

STDEVP :求总体标准偏差

(9)CHECKSUM_AGG求校验和(集合函数)
返回组中各值的校验和。 将忽略 Null 值。CHECKSUM_AGG 可用于检测表中的更改。表中行的顺序不影响 CHECKSUM_AGG 的结果。此外,CHECKSUM_AGG 函数还可与 DISTINCT 关键字和 GROUP BY 子句一起使用。如果表达式列表中的某个值发生更改,则列表的校验和通常也会更改。但只在极少数情况下,校验值会保持不变。
语法结构:CHECKSUM_AGG ( [ ALL | DISTINCT ] expression )

(10)COUNT_BIG求个数
返回组中的项数。 COUNT_BIG 的用法与 COUNT 函数类似。 两个函数唯一的差别是它们的返回值。 COUNT_BIG 始终返回 bigint 数据类型值。 COUNT 始终返回 int 数据类型值。

GROUPING:用于测试 cube 或 rollup 空值

(11)聚合函数使用位置

  • select 语句的选择列表(子查询或外部查询)。
  • compute 或 compute by 子句。
  • having 子句。

(12)在SELECT 查询语句后面控制查询的行数(LIMIT )
显示学生表前5行数据:SELECT * FROM STU LIMIT 5

2、类型转换函数

(1)CONVERT()
CONVERT(数据类型, 要转换的数据源表达式, 要转换的日期格式)

  • 日期格式:
    0:月.日.年.时:分(MON, DD, YY, HH, MI)
    101:月/日/年
    102:年.月.日
    103:日/月/年
    获取当前时间:GETDATE()函数
SELECT CONVERT(char, GETDATE())
SELECT CONVERT(char, GETDATE(),101)

(2)CAST()
这个转化函数没有丰富的日期转换,因此常用于其他类型转换,而日期则用CONVERT()函数。
表达式:CAST(数据源 AS 数据类型)

  • 转换当前日期格式为字符串:
SELECT CAST(GETDATE() AS CHAR(10))

3、日期函数

函数 作用
GETDATE() 获取当前系统时间
DATEADD(datepart, number, date) 在指定日期上增加年月日,返回日期型数据
DATEDIFF(datepart, date1, date2) 获取两个日期的差,并返回数据差值
DATENAME(datepart, date) 获取日期的一部分,并以字符串的形式返回
DATEPART(datepart, date) 获取日期的一部分,返回整数形式

datepart:month,year,day,quarter,week,hour,minute,second

  • 测试练习:
--增加3年
SELECT DATEADD(YEAR,3,GETDATE())
--获取年这一部分的数据
SELECT DATENAME(YEAR,GETDATE())
SELECT DATEPART(YEAR,GETDATE())

4、数学函数

5、字符函数

(1)字符转换函数
1)ASCII():
返回字符表达式最左端字符的ASCII 码值。在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错。

2)CHAR():
将ASCII 码转换为字符。如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL 。

3)LOWER()和UPPER():
LOWER()将字符串全部转为小写;
UPPER()将字符串全部转为大写。

4)STR():
把数值型数据转换为字符型数据。
结构:STR (<float_expression>[,length[, <decimal>]])
length 指定返回的字符串的长度,decimal 指定返回的小数位数。如果没有指定长度,缺省的length 值为10, decimal 缺省值为0。

当length 或者decimal 为负值时,返回NULL;当length 小于小数点左边(包括符号位)的位数时,返回length 个*;先服从length ,再取decimal ;
当返回的字符串位数小于length ,左边补足空格。

(2)去空格函数
LTRIM() :把字符串头部的空格去掉。

RTRIM() :把字符串尾部的空格去掉。

(3)取子串函数
1)left():
LEFT (<character_expression>, <integer_expression>)
返回character_expression 左起 integer_expression 个字符。

2)RIGHT():
结构:RIGHT (<character_expression>, <integer_expression>)
返回character_expression 右起 integer_expression 个字符。

3)SUBSTRING():
结构:SUBSTRING (<expression>, <starting_ position>, length)
返回从字符串左边第starting_ position 个字符起length个字符的部分。

(4)字符串比较函数
1)CHARINDEX():
返回字符串中某个指定的子串出现的开始位置。
结构:CHARINDEX (<’substring_expression’>, <expression>)

其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。此函数不能用于TEXT 和IMAGE 数据类型。

2)PATINDEX():
返回字符串中某个指定的子串出现的开始位置。
结构:PATINDEX (<’%substring _expression%’>, <column_ name>)

其中子串表达式前后必须有百分号“%”否则返回值为0。与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。

(5)字符串操作函数
1)QUOTENAME():
返回被特定字符括起来的字符串。
结构:QUOTENAME (<’character_expression’>[, quote_ character])
其中quote_ character 标明括字符串所用的字符,缺省值为“[]”。

2)REPLICATE():
返回一个重复character_expression 指定次数的字符串。
结构:REPLICATE (character_expression integer_expression)
如果integer_expression 值为负值,则返回NULL 。

3)REVERSE():
将指定的字符串的字符排列顺序颠倒。
结构:REVERSE (<character_expression>)
其中character_expression 可以是字符串、常数或一个列的值。

4)REPLACE():
返回被替换了指定子串的字符串。
结构:REPLACE (<string_expression1>, <string_expression2><string_expression3>)
用string_expression3 替换在string_expression1 中的string_expression2。

5)SPACE():
返回一个有指定长度的空白字符串。
结构:SPACE (<integer_expression>)
如果integer_expression 值为负值,则返回NULL 。

5)STUFF():
用另一子串替换字符串指定位置、长度的子串。
结构:STUFF (<character_expression1>, <start_ position>, <length>,<character_expression2>)

如果起始位置为负或长度值为负,或者起始位置大于character_expression1 的长度,则返回NULL 值。

如果length 长度大于character_expression1 中 start_ position 以右的长度,则character_expression1 只保留首字符。

6、其他系统函数

(1)PATINDEX返回指定表达式中,第一次出现的起始位置。
(2)TEXTPTR返回对应于文本指针的值。

SQL数据库语言基础之SqlServer系统函数、聚合集合函数【大总结】相关推荐

  1. SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建

    文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...

  2. SQL数据库语言基础之SqlServer视图的创建、修改与视图数据的增删改查

    文章目录 一.认识视图 二.创建.查询视图 三.修改.删除视图 四.修改视图数据(与操作表一样,只是把table换成view) 一.认识视图 1.视图的理解 从用户角度来看,一个视图是从一个特定的角度 ...

  3. SQL数据库语言基础之SqlServer数据库原理与设计课程期末复习-条件查询实例练习【学生表、选课表、家庭作业表】

    文章目录 1.简单查询 2.查询在1999年出生的学生学号.姓名.出生日期 3.三次作业成绩都在60分以上的学生学号.课程号 4.查询姓张学生学号.姓名和专业班级 5.查询03级的男生信息 6.查询没 ...

  4. SQL数据库语言基础之SqlServer条件查询、排序数据表、like模糊查询【大总结】

    文章目录 一.语句查询数据(SELECT) 二.获取满足查询条件的语句(WHERE) 三.排序查询(ORDER BY) 四.高级条件查询 一.语句查询数据(SELECT) 1.在SSMS中查看数据 在 ...

  5. SQL数据库语言基础之SqlServer分组查询总结

    文章目录 1.分组的概念 2.聚合函数与分组配合使用 3.查询数据的直方图(REPLICATE()) 4.排序分组结果(ORDER BY放在分组后面) 5.反转查询(CASE与分组的结合) 6.两个分 ...

  6. SQL数据库语言基础之SqlServer表数据的插入、更新与删除

    文章目录 一.数据的插入(INSERT INTO...VALUES) 二.数据的更新(UPDATE) 三.删除数据(DELETE) 一.数据的插入(INSERT INTO-VALUES) 1.数据插入 ...

  7. SQL数据库语言基础之SqlServer多表连接查询与INNER JOIN内连接查询

    文章目录 一.简单连接查询 二.多表连接查询 三.INNER JOIN 内连接查询 一.简单连接查询 1.直接连接:无连接规则连接两表,得到的是两个表的笛卡尔积. 连接后的行数=表1行数*表2行数 连 ...

  8. SQL数据库语言基础之SQL Server自带数据类型、自定义数据类型与使用、创建修改数据表

    文章目录 一.几种数据类型 二.创建数据表 三.修改数据表结构 一.几种数据类型 1.Character 字符串类型 char.chr(5).varchar.varchar(5).text 数据类型 ...

  9. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

    Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...

最新文章

  1. 软件测试-培训的套路-log3
  2. 怎么成为优秀的软件模型设计者?
  3. 解决Parameter ‘__frch_item_0‘ not found. Available parameters 问题
  4. git配置报错fatal: Authentication failed for ‘‘问题解决
  5. jQuery中ajax的4种常用请求方式
  6. Scrapy五大核心组件简介
  7. 模拟计算机有声,小年糕有声影集软件电脑版
  8. Android攻城狮SurfaceView
  9. 主成分分析法_主成分分析法在地震学领域的新应用
  10. Spring Bean范围
  11. leetcode 220. 存在重复元素 III(排序)
  12. LeetCode 1409. 查询带键的排列(map模拟)
  13. Spring面试,IoC和AOP的理解
  14. C++之指针探究(十三):函数指针数组
  15. 静态代码块、非静态代码块和构造方法
  16. elementUI 日期选择控件少一天的问题解决方法
  17. HDOJ 2870 Largest Submatrix
  18. Map与Json的相互转化
  19. 今日分享|每日领红包最高618,全是无门槛使用!
  20. Excel巧做项目管理

热门文章

  1. python 写入excel_基于Python实现Excel的读写
  2. linux mysql 5.7密码忘记_Mysql5.7.14 linux版密码忘记的找回方法
  3. android 高仿随便走,随便走下载_随便走APP手机最新版安装 - 风云下载
  4. vscode markdown_VS Code中的Markdown插件
  5. 管状合金电阻和片状合金电阻的区别_合金采样电阻的特点及作用
  6. java后端参数默认值添加枚举_利用自定义Validator和枚举类来限定接口的入参
  7. mysql mvc javascript_MVC中用Jquery、JS和Ajax 实现分页 存储过程是用mysql写的。
  8. html5用在什么领域,html5技术有哪些新特性(全方面了解html5特点)
  9. oracle复杂密码,如何配置 Oracle 11g 复杂密码校验设置
  10. openmvide使用需要什么插件_什么伺服电机需要加装减速机才能使用?