(十一)函数查询
1. 聚合函数
-
对一组值进行计算,得到一个返回值
SUM(), 求和
AVG(), 求平均
MIN(), 求最小
MAX(), 求最大
COUNT(), 计数,即个数
--例1 求所有学生的平均年龄
Select AVG(sage) AS 平均 FROM Student
--求所有学生的最大、、最小、平均年龄和人数
Select MAX(sage) AS 最大, MIN(sage) AS 最小, AVG(Sage) AS 平均 ,COUNT(*) AS 人数
FROM Student
--例3 求航天班所有学生的最大、最小、平均年龄和人数
Select MAX(sage) AS 最大, MIN(sage) AS 最小, AVG(Sage) AS 平均 ,COUNT(*) AS 人数
FROM Student
WHERE sclass = '航天'
-
CONVERT()
-
CONVERT(datatype, expression [, style])
-
datatype : 目标类型
-
expression : 表达式, 把这个表达式的值转换成 datatype 这种类型
-
[, style], datatype 是日期型时需要,style是日期的
-
--格式转换函数
--例4 整数转字符串
SELECT CONVERT(varchar, 120)
--例5 实数转字符串
SELECT CONVERT(varchar, 120.12)
--例6 字符串转换为整数
SELECT CONVERT(int, '120')
--例7 字符串转实数
SELECT CONVERT(decimal(7, 5), '3.14159')
--例8 日期转换字符串
SELECT CONVERT(char, GETDATE())
--例9 日期转yy.mm.dd型字符串
SELECT CONVERT(char, getdate(), 102)
--例10 日期转yy/mm/dd型字符串
SELECT CONVERT(char, getdate(), 111)
--例11 字符串转日期
SELECT CONVERT(DATE, '20160510')
SELECT CONVERT(DATE, '2016/05/10')
SELECT CONVERT(DATE, '2016-05-10')
SELECT CONVERT(DATE, '5/10/2016')
GETDATE() 获取当前日期和时间
SELECT GETDATE()
DATEADD() 给日期增加年、月、日或时间
DATEADD(part, number, date)
date : 日期
number : 数
part , 日期的哪部分
year, 年 ; month, 月; day, 日
hour , minute , second
DATEDIFF() 两个日期相减
DATEDIFF(part, date1, date2)
date2 和 date1 在part上 相减
part
year, 年 ; month, 月; day, 日
hour , minute , second
GETNAME(part, date) 获得date的part部分,已字符串返回
--例13 日期在某部分加
SELECT DATEADD(year, 0, '2010/5/10 10:10:10.100')
--年
select dateadd(year, 5, '2010/5/10 10:10:10.100')
--天
select dateadd(day, 5, '2010/5/10 10:10:10.100')
--秒
select dateadd(second, 5, '2010/5/10 10:10:10.100')
--在表中出生日期加5
Select DateAdd(year, 5, sbirthday)
FROM Student
--例14 日期在某部分减
Select DateDiff(year, '2010-1-1', '2016-1-1')
Select DateDiff(year, sbirthday, GetDate())
From Student
--例15 获得日期的一部分
Select DateName(month, GetDate())
--得到出生年
Select sno, sname, Sdept,
DateName(year, sbirthday) As 出生年份
From Student
WHERE Sdept = 'CS'
5. 字符串处理函数
SELECT *
FROM Student
Where rtrim(ltrim(Sdept)) = 'CS' -- 将CS前面和后面的空格都截取掉