Viewer

 

字符串与表间的简单转换


 

代码
CREATE FUNCTION [dbo].[ConvertStringToTable](@stringArray NVARCHAR(MAX), @delimiter CHAR(1))
    
RETURNS @StringArrayTable TABLE (id INT IDENTITY(1,1NOT NULL,val NVARCHAR(255))
AS
BEGIN
    
DECLARE @delimiterPosition INT
    
    
IF(RIGHT(@stringArray,1!= @delimiter)
    
BEGIN
        
SET @stringArray = @stringArray + @delimiter
    
END

    
WHILE(CHARINDEX(@delimiter@stringArray<> 0)
    
BEGIN
        
SELECT @delimiterPosition = CHARINDEX(@delimiter@stringArray)
        
        
INSERT @StringArrayTable(val)
        
VALUES (LEFT(@stringArray@delimiterPosition - 1))
        
SELECT @stringArray = STUFF(@stringArray1@delimiterPosition'')
    
END

    
RETURN
END


 

 逆过程:

SELECT val+','
FROM dbo.ConvertStringToTable('1,2,3',',')
FOR XML PATH('') 

 

posted on 2009-06-24 17:24  Viewer  阅读(217)  评论(0编辑  收藏  举报

导航