SQL中的函數(shù)
字符串函數(shù):
1.charindex(查找字符串,被查找字符串[,查找起始位置])
返回值,查找字符串在被查找字符串中的位置數(shù)俗壹,如果未找到略就,則返回0脐嫂。
select charndex('a,'hdsahnvakjj',1) —— 4
select *
from []
where charindex(繆,[name])=1
2.len(字符串)
返回值故源,返回字符串的長度(字符個數(shù))
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(字符串,返回數(shù))
返回值门驾,從右邊數(shù)起的返回數(shù)的字符串
seleect rigth('asddggjeij',3) ——eij
8.left(字符串,返回數(shù))
返回值射赛,從左邊數(shù)起的返回數(shù)的字符串
seleect left ('asddggjeij',3) ——asd
seleect left ([name],1)+'先生' ——取姓名的第一個姓再加上先生
9.replace(字符串,被替換字符串,替換字符串)
返回值,返回替換后的字符串
select replace ('aAaAaAaAeA','A','B') ——aBaBaBaBeB
10.stuff(字符串,起始位置,刪除數(shù)量,添加字符串)
返回值奶是,修改后的字符串
seleect stuff('13512347856''4,4,'*') ——135****7856
日期函數(shù):
1.getdate()
返回值楣责,返回當前系統(tǒng)日期時間
select getdate() ——顯示當前系統(tǒng)時間
2.dateadd(單位,數(shù)量,日期)
返回值,返回指定數(shù)量單位添加后的日期
單位
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(單位,日期)
返回值育叁,返回指定日期單位的整數(shù)
select datepart (dd,getdate()) ——29
數(shù)學函數(shù):
1.abs(數(shù)值)
返回值迅脐,返回絕對值
2.ceiling(數(shù)值)
返回值,返回大于等于所給數(shù)值的最小整數(shù)
3.floor(數(shù)值)
返回值豪嗽,返回小于等于所給數(shù)值的最大整數(shù)
4.power(數(shù)值,次方)
返回值谴蔑,返回數(shù)值指定的次方數(shù)
5.round(數(shù)值,精度)
返回值,返回數(shù)值指定精度四舍五入后的值
6.sign(數(shù)值)
返回值龟梦,正數(shù)時返回1隐锭,負數(shù)時返回-1,0時返回0
7.sqrt(數(shù)值)
返回值,返回數(shù)值的平方根
系統(tǒng)函數(shù):
1.convert(轉(zhuǎn)換類型,轉(zhuǎn)換數(shù)據(jù))
返回值计贰,返回轉(zhuǎn)換后的數(shù)據(jù)
select convert(int,'123')+123 ——246
select convert(varchar(50),123)+abc ——123abc
2.cast(轉(zhuǎn)換數(shù)據(jù) as 轉(zhuǎn)換類型)
返回值钦睡,返回轉(zhuǎn)換后的數(shù)據(jù)
select cast('123' as int)+123 ——246
select convert(123 as varchar(50))+'abc' ——123abc
3.datalength(數(shù)據(jù))
返回值,返回數(shù)據(jù)的字節(jié)數(shù)
select datalength('啊啊啊') ——6
4.isnull(表達式,替換值)
返回值躁倒,當表達式為空值時荞怒,返回替換值,否則返回表達式的值
select isnull(o,'aaa') ——0
select isnull(null,'aaa') ——aaa
聚合函數(shù):查詢字段只能包含聚合函數(shù)字段或者分組字段秧秉,聚合函數(shù)不計算空值
1.SUM(聚合字段)褐桌,求和
select sum(score)
2.AVG(聚合字段),求平均
select avg(score)
3.MAX(聚合字段)象迎,求最大值
select max(score)
4.MIN(聚合字段)荧嵌,求最小值
select min(score)
5.COUNT(聚合字段/*),統(tǒng)計字段值個數(shù)
select count(score)
select count(*) 看看表中有多少行
分組查詢:
查詢字段只能包含分組字段或者聚合函數(shù)字段
Where 源數(shù)據(jù)篩選
Group By 分組字段.....
Having 分組后篩選條件(分組字段砾淌,聚合函數(shù)字段)
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'