【轉】sqlserver字符串拆分(split)方法匯總


Java、.net等開發工具具有split功能,最近在Sqlserver中碰到這個需求。

方法1:動態SQL法

declare @string varchar(100),@sql varchar(1000)
set @string='1,2,3,4,5,6,7,8,9,10'
set @sql='select col='''+ replace(@string,',',''' union all select ''')+''''
PRINT @sql
exec (@sql)

當然,如果您的字符串是'1*2'或者其他格式,只需要在replace函數中修改符號即可。

--方法2:循環截取法

CREATE FUNCTION F_SplitSTR(
@string        varchar(8000),  --待分拆的字符串
@symbol        varchar(10)     --數據分隔符
)RETURNS @table TABLE(col varchar(100))
AS
BEGIN
    DECLARE @splitlen int
    SET @splitlen=LEN(@symbol)-1
    WHILE CHARINDEX(@symbol,@string)>0
    BEGIN
        INSERT @table VALUES(LEFT(@string,CHARINDEX(@symbol,@string)-1))
        SET @string=STUFF(@string,1,CHARINDEX(@symbol,@string)+@splitlen,'')
    END
    INSERT @table VALUES(@string)
    RETURN
END
GO

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM