SQLServer之常用函數(shù)總結(jié)詳解
SQLServer中的常用函數(shù)
字符串函數(shù)
len() 計(jì)算字符串的長(zhǎng)度
select LEN(name) from test1 --計(jì)算name的長(zhǎng)度
大小寫(xiě)轉(zhuǎn)換 lower() upper()
select lower('STUDENT !')
select upper('student !')
去空 ltrim() 字符串左側(cè)的空格去掉 ,rtrim()字符串右側(cè)的空格去掉
declare @str varchar(100) = ' a a a ' select ltrim(@str) select rtrim(@str)
字符串截取 substring() left() right()
select substring('HelloWorld!',6,6) --可截取任意長(zhǎng)度
select left('HelloWorld!' ,5) --從左開(kāi)始截取
select right('HelloWorld!' ,6) --從右開(kāi)始截取
字符串替換 replace()
select replace('HelloWorld!','o','e') --string,要被替換的字符串,替換的字符串
字符串 掉個(gè)順序 reverse()
select reverse('abc') --cba
返回 字符串1在字符串2中出現(xiàn)的未位置 charindex()
charindex(srt1 ,srt2)--srt1 在srt2中的開(kāi)始位置
select charindex('H','elloHWorld') 結(jié)果為:5 --只能查第一次出現(xiàn)的位置,匹配不到返回0
指定的次數(shù)重復(fù)字符串值 replicate()
select replicate('abc',4) 結(jié)果為:abcabcabcabc
聚合函數(shù)
聚合函數(shù)對(duì)一組值計(jì)算后返回單個(gè)值。除了count(統(tǒng)計(jì)項(xiàng)數(shù))函數(shù)以外,其他的聚合函數(shù)在計(jì)算式都會(huì)忽略空值(null)。所有的聚合函數(shù)均為確定性函數(shù)。
平均值 avg() 算一組數(shù)的總和,然后除以為null的個(gè)數(shù),得到平均值。
select avg(id) from test1 avg(列名)
最小值min() 最大值max()
select min(id) from test1 select max(id) from test1
求和 sum()
select sum(id) from test1
計(jì)算總數(shù) count()
select count(id) from test1
分組
統(tǒng)計(jì)學(xué)生的總成績(jī)并排序 select stu_id as 學(xué)生編號(hào) ,name as 學(xué)生姓名 , SUM(語(yǔ)文+英語(yǔ)+數(shù)學(xué)+代數(shù)) as 總分from tb_stuAchievement ORDER BY 總分 DESC GROUP BY stu_id ,name
(函數(shù)可能不全,我只記錄了我用到的,完整的函數(shù)可以查查手冊(cè))
日期和時(shí)間函數(shù)
獲取當(dāng)前日期GetDate
select getdate()
GetUTCDate 獲取UTC時(shí)間值
select GETUTCDATE()
單獨(dú)獲取年月日
select year(getdate()) select month(getdate()) select day(getdate())
日期減法 DATEDIFF
select datediff(YYYY,'2011-11-11','2012-12-12') --輸出1 年份相減之后的確是1 select datediff(day,'2011-11-11','2012-12-12') --輸出 397 兩個(gè)日期相差的天數(shù)
SQLServer 2008中新增的日期時(shí)間型函數(shù)
1、獲取系統(tǒng)時(shí)間 SysDateTime()
2、獲取當(dāng)前日期和時(shí)間 SysDateTimeOffset
3、獲取系統(tǒng)UTC時(shí)間 SysUTCDateTime
4、Current_TimeStamp當(dāng)前數(shù)據(jù)庫(kù)系統(tǒng)時(shí)間戳
5、判斷是否為日期數(shù)據(jù)isDate
select isdate('2012-12-12') -- 輸出1
select isdate('xxxx-12-12') -- 輸出0
(函數(shù)可能不全,我只記錄了部分,完整的函數(shù)可以查查手冊(cè))
MID() 從文本字段中提取字符。
SELECT MID(City,1,3) as SmallCity FROM Persons
ROUND() 函數(shù) 數(shù)值字段舍入為指定的小數(shù)位數(shù)。
SELECT ROUND(column_name,decimals) FROM table_name
NOW() 函數(shù) 返回當(dāng)前的日期和時(shí)間。
SELECT NOW() FROM table_name
FORMAT () 用于對(duì)字段的顯示進(jìn)行格式化。
select FORMAT(stu_intime,'yyyy-MM-dd hh:mm:ss') as intime from stu
SELECT INTO 從一個(gè)表中選取數(shù)據(jù),然后把數(shù)據(jù)插入另一個(gè)表中。
select stu_name,stu_id into stu1 from stu --將stu表中的stu_id和stu_name插入新表stu1(會(huì)創(chuàng)建一個(gè)新表)
sql server 中沒(méi)有l(wèi)imit 但是有top
/*查詢 從n開(kāi)始的m條數(shù)據(jù) */ declare @n int=2; declare @m int = 5; select top (@m) * from stu where id not in (select top (@n) id from stu) /*查詢n到m之間的數(shù)據(jù)*/ declare @n int=2; declare @m int = 5; select top (@m-@n+1) * from stu where id not in (select top (@n-1) id from stu)
BETWEEN … AND 會(huì)選取介于兩個(gè)值之間的數(shù)據(jù)范圍。這些值可以是數(shù)值、文本或者日期。
/* 查詢id 1 到3 的數(shù)據(jù) */ select * from stu where id between '1' and '3'
ALTER TABLE 語(yǔ)句用于在已有的表中添加、修改或刪除列。
alter table stu add stu_sj varchar(200) --添加一列名為stu_sj alter table stu drop column stu_sj --刪除列
DISTINCT 用于返回唯一不同的值。
/* 返回名字,重復(fù)的不返回 */ select distinct stu_name from stu
到此這篇關(guān)于SQLServer之常用函數(shù)總結(jié)詳解的文章就介紹到這了,更多相關(guān)SQLServer之常用函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQLserver 2008將數(shù)據(jù)導(dǎo)出到Sql腳本文件的方法
大家都知道使用SQL的企業(yè)管理器可以導(dǎo)出SQL腳本,但導(dǎo)不出SQL的數(shù)據(jù)到腳本中,目前SQL2008有這個(gè)功能了。2010-04-04
SQL server 2008 更改登錄驗(yàn)證方式的方法
這篇文章主要介紹了SQL server 2008 更改登錄驗(yàn)證方式的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-01-01
SQL2008中SQL應(yīng)用之- 死鎖(Deadlocking)
當(dāng)一個(gè)用戶會(huì)話(會(huì)話1)已經(jīng)落定了一個(gè)資源,而另一個(gè)會(huì)話(會(huì)話2)想要修改該資源,并且會(huì)話2也鎖定了會(huì)話1想要修改的資源時(shí),就會(huì)出現(xiàn)“死鎖”(deadlocking)。2011-06-06
win2008 r2安裝SQL SERVER 2008 R2 不能打開(kāi)1433端口設(shè)置方法
這篇文章主要介紹了win2008 r2安裝SQL SERVER 2008 R2 不能打開(kāi)1433端口設(shè)置方法,需要的朋友可以參考下2017-01-01
SQL Server 2008 Express如何開(kāi)啟遠(yuǎn)程訪問(wèn)
這篇文章主要介紹了SQL Server 2008 Express 遠(yuǎn)程訪問(wèn)的設(shè)置方法,需要的朋友可以參考下2015-10-10
Microsoft SQL Server 2008 基本安裝說(shuō)明
這篇文章主要介紹了Microsoft SQL Server 2008 基本安裝說(shuō)明 ,需要的朋友可以參考下2015-08-08
SQL Server 2008還原數(shù)據(jù)庫(kù)的方法
這篇文章主要為大家詳細(xì)介紹了SQL Server 2008還原數(shù)據(jù)庫(kù)的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Windows7下Microsoft SQL Server 2008安裝圖解和注意事項(xiàng)
這篇文章主要介紹了Windows7下Microsoft SQL Server 2008安裝圖解和注意事項(xiàng),超詳細(xì)的圖文記錄哦,需要的朋友可以參考下2014-07-07
通過(guò)SQLServer 2008 操作 MySQL的方法
在公司中經(jīng)常會(huì)遇到部署多種數(shù)據(jù)庫(kù)環(huán)境的情況,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)經(jīng)常在不同數(shù)據(jù)庫(kù)之間轉(zhuǎn)換確實(shí)有些繁瑣,本篇將介紹從SQLServer 操作MySQL 數(shù)據(jù)庫(kù)的方法。2010-04-04
SQL Server復(fù)制需要有實(shí)際的服務(wù)器名稱(chēng)才能連接到服務(wù)器
服務(wù)器上安裝的WIN2008 R2,然后沒(méi)有在意機(jī)器名,安裝了SQL2008 R2數(shù)據(jù)庫(kù)之后,配置AD域的時(shí)候修改了機(jī)器名2013-11-11

