Sqlserver学习笔记
-----------------------接Part 5-------------------
28聚合函数
--求平均分
SELECTAVG(高考分数)FROM std_table
--求总和
SELECTSUM(高考分数)FROM std_table
--求最低分
SELECTMIN(高考分数)FROM std_table
--求最高分
SELECTMAX(高考分数)FROM std_table
--返回列中高考分数不为空值的记录行数
SELECTCOUNT(高考分数)AS记录行数FROMstd_TABLE
--数学函数
--求绝对值
SELECTABS(8)
SELECTABS(-8)
--求圆周率
SELECTPI()
--求大于或等于所给数值的最小整数
SELECTCEILING(5.6)--结果为6
SELECTCEILING(5)--结果为5
--求小于或等于所给值的最大整数
SELECTFLOOR(5.6) --结果5
--求x的y次方
SELECTPOWER(2,3)--求二的三次方,结果
--返回0~1之间的随机函数(每次执行结果都是随机的)
SELECTRAND()
--配置函数
--获取当前数据库版本号
SELECT@@VERSION
--获取当前语言
SELECT@@LANGUAGE
--时间函数
--获取当前时间(yyyy-mm-dd hh:mm:ss)
SELECTGETDATE()
--获取当前时间所在日期(第几号)
SELECTDAY(GETDATE())
--取出时间所在的月份
SELECTMONTH(GETDATE())
--取出时间所在的年份
SELECTYEAR(GETDATE())
--给当前时间添加天数(D),月数(M),年数(Y)
SELECTDATEADD(D, 3,GETDATE())AS wawa
SELECTDATEADD(M, 3,GETDATE())AS wawa
SELECTDATEADD(YEAR, 3,GETDATE())AS wawa
--从当前时间中取出某一部分
SELECTDATENAME(D,'2010-11-15')--取出天数
SELECTDATENAME(M,'2010-11-15')--取出月数
SELECTDATENAME(YEAR,'2010-11-15')--取出年数
--字符串函数
SELECTLEN('strl11')--返回字符串的字符个数[结果是6]
SELECTLOWER('ABC'),LOWER('Abc'),UPPER('Abc'),UPPER('abc')--大小写转换
--结果abc abc ABC ABC
SELECTLTRIM(' 去掉左边空格')
SELECTRTRIM('去掉右边空格')
SELECTLEFT('取左边三个字符',3)--结果取左边3个字符
SELECTRIGHT('取右边三个字符',3)--结果3个字符[从右边往左算三个]
--用某字符串来替换某个指定字符串的字符串子集
SELECTREPLACE('原字符串','原','这是一个')--结果这是一个字符串
--按指定次数,重复字符串,最后输出字符串
SELECTREPLICATE('go', 5)--结果gogogogogo
--按指定字符串反序排列
SELECTREVERSE('这是个字符串')--结果:串符字个是这
--按指定位置开始截取指定长度的字符串
SELECTSUBSTRING('这是个字符串',2, 3)--结果:是个字[注:下标从1开始
--排名函数
--RANK() --返回结果集的分区内每行的排名
--RANK() OVER(ORDER BY列名)
SELECT*FROM std_table
--把查询结果按高考分数的排名列出来
SELECT*,RANK()OVER(ORDERBY(高考分数))排名FROMstd_table
SELECT*,RANK()OVER(ORDERBY(高考分数)DESC)排名FROMstd_table