一個SQL存儲過程切割字符串的代碼實例
作者:被淹死的囧囧魚 
  本文介紹了一個用SQL Server數(shù)據(jù)庫的存儲過程來切割字符串的代碼實例,希望能對您有所幫助。
 在SQL Server數(shù)據(jù)庫中,可以使用存儲過程來切割字符串,即把行數(shù)據(jù)轉(zhuǎn)換為列數(shù)據(jù)。本文就介紹了一個使用存儲過程切割字符串的實例。
代碼實例如下:
- --------------------------這個函數(shù)用來切割字符串的-----------------
 - --函數(shù)的參數(shù)***個參數(shù)(@Text)是要切割的字符串第二個參數(shù)(@Sign)是要以什么字符串切割
 - CREATEFUNCTION[dbo].[Split](@TextNVARCHAR(4000),@SignNVARCHAR(4000))
 - RETURNS@tempTableTABLE(idINTIDENTITY(1,1)PRIMARYKEY,[VALUE]NVARCHAR(4000))
 - AS
 - BEGIN
 - DECLARE@StartIndexINT--開始查找的位置
 - DECLARE@FindIndexINT--找到的位置
 - DECLARE@ContentVARCHAR(4000)--找到的值
 - --初始化一些變量
 - SET@StartIndex=1--T-SQL中字符串的查找位置是從1開始的
 - SET@FindIndex=0
 - --開始循環(huán)查找字符串逗號
 - WHILE(@StartIndex<=LEN(@Text))
 - BEGIN
 - --查找字符串函數(shù)CHARINDEX***個參數(shù)是要找的字符串
 - --第二個參數(shù)是在哪里查找這個字符串
 - --第三個參數(shù)是開始查找的位置
 - --返回值是找到字符串的位置
 - SELECT@FindIndex=CHARINDEX(@Sign,@Text,@StartIndex)
 - --判斷有沒找到?jīng)]找到返回0
 - IF(@FindIndex=0OR@FindIndexISNULL)
 - BEGIN
 - --如果沒有找到者表示找完了
 - SET@FindIndex=LEN(@Text)+1
 - END
 - --截取字符串函數(shù)SUBSTRING***個參數(shù)是要截取的字符串
 - --第二個參數(shù)是開始的位置
 - --第三個參數(shù)是截取的長度
 - --@FindIndex-@StartIndex表示找的的位置-開始找的位置=要截取的長度
 - --LTRIM和RTRIM是去除字符串左邊和右邊的空格函數(shù)
 - SET@Content=LTRIM(RTRIM(SUBSTRING(@Text,@StartIndex,@FindIndex-@StartIndex)))
 - --初始化下次查找的位置
 - SET@StartIndex=@FindIndex+1
 - --把找的的值插入到要返回的Table類型中
 - INSERTINTO@tempTable([VALUE])VALUES(@Content)
 - END
 - RETURN
 - END
 
以上就是用SQL Server數(shù)據(jù)庫的存儲過程切割字符串的代碼實例,希望能對您有所幫助。如果您想了解更多的SQL Server數(shù)據(jù)庫的知識,也可以看一下這里的文章:http://database.51cto.com/sqlserver/,內(nèi)容很精彩哦,一定會對您有所收獲的!
【編輯推薦】
責(zé)任編輯:趙鵬 
                    來源:
                    博客園
 














 
 
 

 
 
 
 