SQL函数的使用

--1.group by 字段
--分组:统计某个字段的取值,并将取值相同的字段的数据合并成一条。(表结构发生了变化,因为某些列没有显示出来)
        -->查询只允许出现分组的字段或聚合函数或常量
--2.如何通过显示查询计划和执行查询计划来做代码分析。(重点)
--3.聚合函数(Aggregation重点)
        -->聚合函数忽略空值数据(类似于老师统计班级的平均分数,他会忽略掉缺考学生的成绩)
--4.开窗函数over
        -->使用聚合函数后,只能是一行,使用over可以将聚合函数扩展到所有行
			-- 开窗函数over的常用方法
			-- 1、为每条数据显示聚合信息(聚合函数() over())
			-- 2、为每条数据提供分组的聚合函数结果(聚合函数() over(partition by 字段) as 别名)
			-- 3、与排名函数一起使用(row_number() over(order by 字段) as 别名)

		-->表值构造函数的写法
		select 
			row_number() over(order by stuScore) as 序号,
			*, 
			avg(stuScore) over() as 平均分, 
			avg(stuScore) over(partition by stuOtherName) as 分组平均分
		from 
		(
			values
				(1, '张三', 100,'组长'),
				(2, '李四', 87, '学干'),
				(3, '赵钱', 95, '组长'),
				(4, '孙李', 88, '学干')
		) as tbl(stuId, stuName, stuScore, stuOtherName);
--5.having
		-->where只能直接对数据源进行筛选
		-->having对聚合后的数据进行筛选
--6.select
--7.distinct
--8.top
        -->获取前几条数据,放在列的前面,常与order by一起使用(因为结果集是没有顺序的)
--9.order by
		-->数据库中的数据是没有顺序的
		-->使用order by得到有序的结果(使用order by后得到的是游标而非结果集)
--10.union [all]
       -->将两个结果简单的拼接起来
--11.select into
        select 列1, 列2...,
		into 不存在的表名
		from 数据源
--12.表值构造函数
		select col1,col2,col3
		from 
		(
		   values(值1), (值2), (值3)
		   
		) as 别名(col1,col2,col3)
--13.数学函数
		ROUND ( numeric_expression , length [ ,function ] ):返回一个数值,舍入到指定的长度或精度。
		FLOOR ( numeric_expression ):返回小于或等于指定数值表达式的最大整数
		SIGN 返回符号. 等价于:|x|/x
		SQRT(numeric_expression) :返回数值表达式的平方根
		CEILING ( numeric_expression):返回大于或等于指定数值表达式的最小整数。
		PI
		SQUARE(numeric_expression): 返回数值表达式的平方。
		POWER(numeric_expression,power): 返回对数值表达式进行幂运算的结果。Power 参数的计算结果必须为整数
		RAND ( [ seed ] ) :返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值。如果未指定 seed,则 SQL Server 数据库引擎随机分配种子值。对于指定的种子值,返回的结果始终相同。
--14.字符串函数
		LEN(character_expression):返回字符表达式中的字符数。如果字符串中包含前导空格和尾随空格,则函数会将它们包含在计数内。,对相同的单字节和双字节字符串返回相同的值。
		DATALENGTH ( expression ):返回用于表示任何表达式的字节数
		LOWER
		UPPER
		LTRIM
		RTRIM
		LEFT
		RIGHT
		SUBSTRING(string,start_position,length):起始位置从1开始
--15.日期函数(为什么可以使用“>=”号对时间字符串进行比较,因为时间存储的其实是数字)
		GETDATE
		DATEADD (datepart , number , date ):将指定 number 时间间隔(有符号整数)与指定 date 的指定 datepart 相加后,返回date。

		DATEDIFF ( datepart , startdate , enddate ):返回指定的 startdate 和 enddate 之间所跨的指定 datepart 边界的计数(带符号的整数)。
		DATEPART ( datepart , date ):返回表示指定 date 的指定 datepart 的整数。
--16.类型转换函数
		CAST ( expression AS data_type [ ( length ) ] ):默认length=30
		CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
		


			


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值