SQL中的函数
字符串函数:
1.charindex(查找字符串,被查找字符串[,查找起始位置])
返回值,查找字符串在被查找字符串中的位置数,如果未找到,则返回0。
select charndex('a,'hdsahnvakjj',1) —— 4
select *
from []
where charindex(缪,[name])=1
2.len(字符串)
返回值,返回字符串的长度(字符个数)
select *
from []
where charindex(缪,[name])=1 and len ([name]) 相当于精确查找
3.lower(字符串)
返回值,返回小写字母的字符串
select lower ([name])
from [表名]
4.upper(字符串)
返回值,返回大写字母的字符串
select upper('ABCabc') ——把表中字母都改成大写
select lower('ABCabc') ——把表中字母都改成小写
5.ltrim(字符串)
返回值,返回去除左边空格后的字符串
seleect ltrim (' aaa ') + 'abc' ——去除了左边空格
6.rtrim(字符串)
返回值,返回去除右边空格后的字符串
seleect rtrim (' aaa ') + 'abc' ——去除了右边空格
seleect ltrim(rtrim (' aaa ') )+ 'abc' ——去除了左右边空格
7.rigth(字符串,返回数)
返回值,从右边数起的返回数的字符串
seleect rigth('asddggjeij',3) ——eij
8.left(字符串,返回数)
返回值,从左边数起的返回数的字符串
seleect left ('asddggjeij',3) ——asd
seleect left ([name],1)+'先生' ——取姓名的第一个姓再加上先生
9.replace(字符串,被替换字符串,替换字符串)
返回值,返回替换后的字符串
select replace ('aAaAaAaAeA','A','B') ——aBaBaBaBeB
10.stuff(字符串,起始位置,删除数量,添加字符串)
返回值,修改后的字符串
seleect stuff('13512347856''4,4,'*') ——135****7856
日期函数:
1.getdate()
返回值,返回当前系统日期时间
select getdate() ——显示当前系统时间
2.dateadd(单位,数量,日期)
返回值,返回指定数量单位添加后的日期
单位
Year yy、yyyy
Quarter qq、q
Month mm、m
Dayofyear dy、y
Day dd、d
Week wk、ww
Weekday dw、w
Hour Hh
Minute mi、n
Second ss、s
Millisecond Ms
select dateadd (dd,1000.getdatee())
select dateadd (dd,1000.'2018.1.1')
3.datediff(单位,前一个日期,后一个日期)
返回值,返回两个日期指定单位的差值
select datediff (dd,'2017-3-29',getdate()) ——365
4.datename(单位,日期)
返回值,返回指定日期单位的字符串
select datename (dd,getdate()) ——29
select datename (dd,'1994-7-10') ——星期日
5.datepart(单位,日期)
返回值,返回指定日期单位的整数
select datepart (dd,getdate()) ——29
数学函数:
1.abs(数值)
返回值,返回绝对值
2.ceiling(数值)
返回值,返回大于等于所给数值的最小整数
3.floor(数值)
返回值,返回小于等于所给数值的最大整数
4.power(数值,次方)
返回值,返回数值指定的次方数
5.round(数值,精度)
返回值,返回数值指定精度四舍五入后的值
6.sign(数值)
返回值,正数时返回1,负数时返回-1,0时返回0
7.sqrt(数值)
返回值,返回数值的平方根
系统函数:
1.convert(转换类型,转换数据)
返回值,返回转换后的数据
select convert(int,'123')+123 ——246
select convert(varchar(50),123)+abc ——123abc
2.cast(转换数据 as 转换类型)
返回值,返回转换后的数据
select cast('123' as int)+123 ——246
select convert(123 as varchar(50))+'abc' ——123abc
3.datalength(数据)
返回值,返回数据的字节数
select datalength('啊啊啊') ——6
4.isnull(表达式,替换值)
返回值,当表达式为空值时,返回替换值,否则返回表达式的值
select isnull(o,'aaa') ——0
select isnull(null,'aaa') ——aaa
聚合函数:查询字段只能包含聚合函数字段或者分组字段,聚合函数不计算空值
1.SUM(聚合字段),求和
select sum(score)
2.AVG(聚合字段),求平均
select avg(score)
3.MAX(聚合字段),求最大值
select max(score)
4.MIN(聚合字段),求最小值
select min(score)
5.COUNT(聚合字段/*),统计字段值个数
select count(score)
select count(*) 看看表中有多少行
分组查询:
查询字段只能包含分组字段或者聚合函数字段
Where 源数据筛选
Group By 分组字段.....
Having 分组后筛选条件(分组字段,聚合函数字段)
select course sum(score)
from [表名]
group by course
select id sum(score)
from [表名]
group by id
select id,course,avg(score)
from [表名]
where course='html'
group by id,course
select id,course,avg(score)
from [表名]
group by id,course
having course!='java'