SQL Server 常用函數(shù)使用方法小結(jié)
之前就想要把一些 SQL 的常用函數(shù)記錄下來(lái),不過(guò)一直沒(méi)有實(shí)行。。。嘿嘿。。。
直到今天用到substring()這個(gè)函數(shù),C# 里面這個(gè)方法起始值是 0,而 SQL 里面起始值是 1。傻傻分不清楚。。。
這篇博客作為記錄 SQL 的函數(shù)的使用方法,想到哪里用到哪里就寫到哪里。。。
SubString():用于截取指定字符串的方法。該方法有三個(gè)參數(shù):
參數(shù)1:用于指定要操作的字符串。
參數(shù)2:用于指定要截取的字符串的起始位置,起始值為 1 。
參數(shù)3:用于指定要截取的長(zhǎng)度。
select substring('abcdef',1,3) -- 返回 abc select substring('123456321',0,2) -- 返回 1,即第一位,最好不要這樣做
Left():用于返回指定字符串中指定長(zhǎng)度的左側(cè)部分。該方法有兩個(gè)參數(shù):
參數(shù)1:用于指定要操作的字符串。
參數(shù)2:用于指定要返回的子字符串的長(zhǎng)度。
select LEFT('abc123',3) -- 返回 abc select LEFT('左側(cè)部分右側(cè)部分',4) -- 返回 左側(cè)部分
Right():用于返回指定字符串中指定長(zhǎng)度的右側(cè)部分。該方法有兩個(gè)參數(shù):
參數(shù)1:用于指定要操作的字符串。
參數(shù)2:用于指定要返回的子字符串的長(zhǎng)度。
select RIGHT('abc123',3) -- 返回 123 select RIGHT('左側(cè)部分右側(cè)部分',4) -- 返回 右側(cè)部分
CharIndex():用于返回指定字符串中指定子字符串出現(xiàn)的起始位置。如果未找到就返回 0。該方法有兩個(gè)參數(shù):
參數(shù)1:用于指定要進(jìn)行查找的字符串。
參數(shù)2:用于指定用作檢索的字符串。
select charindex('a','123a123') -- 返回 4 select charindex('abc','123a123') -- 返回 0 select charindex('abc','123abc123') -- 返回 4
Stuff():用于刪除指定長(zhǎng)度的字符,并在刪除的位置插入新的字符/值。該方法有四個(gè)參數(shù):
參數(shù)1:用于指定要操作的字符串。
參數(shù)2:用于指定要?jiǎng)h除字符的起始位置。
參數(shù)3:用于指定要?jiǎng)h除字符的長(zhǎng)度。
參數(shù)4:用于指定在刪除的位置插入的新的字符串/值。
select stuff('123abc456',4,3,'ABC') -- 返回 123ABC456 select stuff('123abc456',1,3,'') -- 返回 abc456,用空字符串替代
Len():用于返回指定文本的值的長(zhǎng)度。前導(dǎo)空格計(jì)算在內(nèi),尾隨空格不計(jì)算在內(nèi)。該方法有一個(gè)參數(shù):
參數(shù)1:用于指定要操作的文本或字符串。
select len('123') -- 返回 3 select len('字符串') -- 返回 3
Difference():用于返回一個(gè)整數(shù)值,指示兩個(gè)字符表達(dá)式的 SOUNDEX 值之間的差異。(即兩個(gè)字符串的相似度)那么什么是 SOUNDEX 值呢?先記著,下面輪到它了。
返回的值從 0 到 4 不等:0 表示幾乎不同或完全不同,4 表示幾乎相同或完全相同。該方法有兩個(gè)參數(shù):
參數(shù)1:用于指定要進(jìn)行比對(duì)的第一個(gè)字符串 SOUNDEX 值 。
參數(shù)2:用于指定要進(jìn)行比對(duì)的第二個(gè)字符串 SOUNDEX 值。
select difference('action','demo') -- 返回 2 select difference('123456','整數(shù)') -- 返回 4
Soundex():用于返回指定字符串的 SOUNDEX 值。SOUNDEX是一種語(yǔ)音算法,利用英文字的讀音計(jì)算近似值,值由四個(gè)字符構(gòu)成,第一個(gè)字符為英文字母,后三個(gè)為數(shù)字。在拼音文字中有時(shí)會(huì)有會(huì)念但不能拼出正確字的情形,可用 Soundex 做類似模糊匹配的效果。這里的模糊匹配跟 LIKE 不同。
算法簡(jiǎn)要說(shuō)明:
-- 將英文字按以下規(guī)則替換(不使用第一個(gè)字符進(jìn)行匹配,并且不使用對(duì)應(yīng)值為 0 的英文字符的值) a e h i o u w y -> 0 b f p v -> 1 c g j k q s x z -> 2 d t -> 3 l -> 4 m n -> 5 r -> 6
如果字符串中存在擁有相同對(duì)應(yīng)數(shù)字的2個(gè)或以上的字母在一起(例如 j 和 k),則刪除其他的,只保留1個(gè)。去除對(duì)應(yīng)值為 0 的字符,只返回前4個(gè)字節(jié),不夠用 0 填充。
select soundex('string') -- 返回 S215 select soundex('str') -- 返回 S210 select soundex('123') -- 返回 0000 select soundex('字符串') -- 返回 0000
PS:除英文字符以外的字符都將返回 0000,所以上面的方法 Difference() 的第二個(gè)示例會(huì)返回4(表示完全相同)。
Lower():用于返回指定英文字符串的小寫形式的字符串。如果不為英文字符串,則返回原值。該方法有一個(gè)參數(shù):
參數(shù)1:用于指定要轉(zhuǎn)換為小寫形式的字符串。
select lower('ABC') -- 返回 abc select lower('123') -- 返回 123
Upper():用于返回指定英文字符串的大寫形式的字符串。如果不為英文字符串,則返回原值。該方法有一個(gè)參數(shù):
參數(shù)1:用于指定要轉(zhuǎn)換為大寫形式的字符串。
select upper('abc') -- 返回 ABC select upper('123') -- 返回 123
Ltrim():用于返回刪除前導(dǎo)空格之后的字符串。該方法有一個(gè)參數(shù):
參數(shù)1:用于指定要進(jìn)行刪除前導(dǎo)空格操作的字符串。
select ltrim(' 123') -- 返回 123 select ltrim(' 好多空格') -- 返回 好多空格 select len(' 123') -- 返回 11 select len(ltrim(' 123')) -- 返回 3
Rtrim():用于返回截?cái)辔搽S空格之后的字符串。該方法有一個(gè)參數(shù):
參數(shù)1:用于指定要進(jìn)行截?cái)辔搽S空格操作的字符串。
select rtrim('123 ') -- 返回 123 select len(rtrim('123 ')) -- 返回 3
Replace():用第三個(gè)表達(dá)式替換第一個(gè)字符串表達(dá)式中出現(xiàn)的所有第二個(gè)給定字符串表達(dá)式。該方法有三個(gè)參數(shù):
參數(shù)1:用于指定要操作的字符串,即被匹配的字符串。
參數(shù)2:用于指定要進(jìn)行匹配的字符串。
參數(shù)3:用于指定用作替換存在的匹配項(xiàng)的字符串。
--把 abc 替換為 xxx select replace('123abc456','abc','xxx') -- 返回 123xxx456 -- 用空字符串替換匹配項(xiàng) select replace('123abc456','abc','') -- 返回 123456
以上所述是小編給大家介紹的SQL Server 常用函數(shù)使用方法小結(jié),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的,在此也非常感謝大家對(duì)我們網(wǎng)站的支持!
上一篇:Sql Server 存儲(chǔ)過(guò)程調(diào)用存儲(chǔ)過(guò)程接收輸出參數(shù)返回值
欄 目:MsSql
下一篇:SQL Server并發(fā)處理存在就更新解決方案探討
本文標(biāo)題:SQL Server 常用函數(shù)使用方法小結(jié)
本文地址:http://mengdiqiu.com.cn/a1/MsSql/10479.html
您可能感興趣的文章
- 01-10SQLServer存儲(chǔ)過(guò)程實(shí)現(xiàn)單條件分頁(yè)
- 01-10SQL Server 2012降級(jí)至2008R2的方法
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方法詳解
- 01-10SQL Server數(shù)據(jù)庫(kù)定時(shí)自動(dòng)備份
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)據(jù)的實(shí)例代碼
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代碼
- 01-10SqlServer快速檢索某個(gè)字段在哪些存儲(chǔ)過(guò)程中(sql 語(yǔ)句)
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或者Hash索引


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問(wèn)題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 01-10SQLServer存儲(chǔ)過(guò)程實(shí)現(xiàn)單條件分頁(yè)
- 01-10SQLServer中防止并發(fā)插入重復(fù)數(shù)據(jù)的方
- 01-10SQL Server 2012降級(jí)至2008R2的方法
- 01-10SQL Server性能調(diào)優(yōu)之緩存
- 01-10SQL Server數(shù)據(jù)庫(kù)定時(shí)自動(dòng)備份
- 01-10Sql Server 死鎖的監(jiān)控分析解決思路
- 01-10實(shí)現(xiàn)SQL Server 原生數(shù)據(jù)從XML生成JSON數(shù)
- 01-10SqlServer快速檢索某個(gè)字段在哪些存儲(chǔ)
- 01-10SqlServer 在事務(wù)中獲得自增ID的實(shí)例代
- 01-10SQLServer性能優(yōu)化--間接實(shí)現(xiàn)函數(shù)索引或
隨機(jī)閱讀
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 04-02jquery與jsp,用jquery
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文