深入SQL截取字符串(substring與patindex)的詳解
首先學(xué)習(xí)兩個(gè)函數(shù)
1.substring 返回字符、binary、text 或 image 表達(dá)式的一部分。
基本語法:SUBSTRING ( expression , start , length )
expression:字符串、二進(jìn)制字符串、text、image、列或包含列的表達(dá)式
start:整數(shù),指定子串的開始位置 注:SQL中"1"表示字符串中的第一個(gè)字符,而.NET中"0"表示第一個(gè)字符
length:整數(shù),指定子串的長度(要返回的字符數(shù)或字節(jié)數(shù))
2.patindex 返回指定表達(dá)式中某模式第一次出現(xiàn)的起始位置;如果在全部有效的文本和字符數(shù)據(jù)類型中沒有找到該模式,則返回零。
基本語法:PATINDEX ( '%pattern%' , expression )
pattern:字符串??梢允褂猛ㄅ浞?pattern 之前和之后必須有 % 字符(搜索第一個(gè)和最后一個(gè)字符時(shí)除外)。pattern 是短字符數(shù)據(jù)類型類別的表達(dá)式
expression:表達(dá)式,通常為要在其中搜索指定模式的列,expression 為字符串?dāng)?shù)據(jù)類型類別
下面結(jié)合上面的兩個(gè)函數(shù),截取字符串中指定的字符
declare @a varchar(50)
set @a='2009年7月15日星期五'
select substring(@a,1,4) --獲取年份2009
declare @b int
set @b=patindex('%日%',@a) --獲取'日'這個(gè)字符在字符串中的位置,即10
select substring(@a,6,@b-5) --獲取日期'7月15日'
相關(guān)文章
SQL Server 置疑、可疑、正在恢復(fù)等情況分析
有些時(shí)候當(dāng)你重啟了數(shù)據(jù)庫服務(wù),會(huì)發(fā)現(xiàn)有些數(shù)據(jù)庫變成了正在恢復(fù)、置疑、可疑等情況,這個(gè)時(shí)候DBA就會(huì)很緊張了,下面是一些在實(shí)踐中得到證明的方法2011-12-12揭秘SQL Server 2014有哪些新特性(3)-可更新列存儲(chǔ)聚集索引
可更新的列存儲(chǔ)索引作為SQL Server 2014的一個(gè)關(guān)鍵功能之一,在提升數(shù)據(jù)庫的查詢性能方面貢獻(xiàn)非常突出。據(jù)微軟統(tǒng)計(jì),在面向OLAP查詢統(tǒng)計(jì)類系統(tǒng)中,相比其他SQL傳統(tǒng)版本的數(shù)據(jù)庫,報(bào)表查詢的性能最大可提升上十倍。2014-08-08Sql Server事務(wù)語法及使用方法實(shí)例分析
這篇文章主要介紹了Sql Server事務(wù)語法及使用方法,結(jié)合實(shí)例形式分析了Sql Server事務(wù)的概念、原理及相關(guān)使用技巧,需要的朋友可以參考下2019-02-02SQLSERVER對索引的利用及非SARG運(yùn)算符認(rèn)識(shí)
SQL對篩選條件簡稱:SARG(search argument/SARG)當(dāng)然這里不是說SQLSERVER的where子句,是說SQLSERVER對索引的利用,感興趣的朋友可以了解下,或許本文的知識(shí)點(diǎn)對你有所幫助哈2013-02-02SQL Server實(shí)現(xiàn)將特定字符串拆分并進(jìn)行插入操作的方法
這篇文章主要介紹了SQL Server實(shí)現(xiàn)將特定字符串拆分并進(jìn)行插入操作的方法,涉及SQL Server的循環(huán)、遍歷、判定及插入等相關(guān)操作技巧,需要的朋友可以參考下2016-08-08SQL Server 2000/2005/2008刪除或壓縮數(shù)據(jù)庫日志的方法
最近win2008 r2的服務(wù)器比較卡,打開服務(wù)器顯示也特別慢,sqlserver業(yè)務(wù)費(fèi)正常執(zhí)行,服務(wù)器桌面操作也比較卡,經(jīng)過多方研究發(fā)現(xiàn)原來是sqlserver日志文件已經(jīng)達(dá)到了84G導(dǎo)致,這里就為大家分享一下解決方法,需要的朋友可以參考一下2019-09-09