您的位置:首页 > 数据库

Sql server 2005 CTE 拆分字符串

2010-12-31 15:47 561 查看
alter FUNCTION [dbo].[UF_SpliteIntToTable]

(

@String VARCHAR(8000)

)

RETURNS @Table TABLE (Id INT)

AS

BEGIN

DECLARE @SpliteChar AS CHAR(1) = ',';

WITH TempTable AS

(

SELECT CAST(SUBSTRING(@String,1,CHARINDEX(@SpliteChar,@String,1) - 1) AS INT) AS item,

SUBSTRING(@String,CHARINDEX(@SpliteChar,@String,1) + 1, LEN(@String)) + @SpliteChar AS list

UNION ALL

SELECT CAST(SUBSTRING(list,1,CHARINDEX(@SpliteChar,list,1) - 1) AS INT) AS item,

SUBSTRING(list,CHARINDEX(@SpliteChar,list,1) + 1, LEN(list)) AS list

FROM TempTable

WHERE LEN(TempTable.list) > 0

)

INSERT INTO @Table SELECT item FROM TempTable WHERE item > 0

RETURN

END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: