SQL Server 【字符串】转【表】

阅读量:32 2024-10-24 SQL Server 【字符串】转【表】 SQL

知识分享不易,转载请标注来源:http://www.blenderkou.top/contents/13/6365.html
版权申明:欢迎转载,但请注明出处。
一些博文中的参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。



SQL Server 【字符串】转【表】

 

把单个字段的固定分隔符 转为 多行,字段转行,字符串分割。

/* 一、创建函数 */
CREATE FUNCTION [dbo].[F_StrToTable]
 (
     @SplitString nvarchar(max),  --源字符串
     @Separator nvarchar(10)=' '  --分隔符号,默认为空格
 )
 RETURNS @SplitStringsTable TABLE  --输出的数据表
 (
     [id] int identity(1,1),
     [value] nvarchar(max)
 )
 AS
 BEGIN
     DECLARE @CurrentIndex int;
     DECLARE @NextIndex int;
     DECLARE @ReturnText nvarchar(max);

     SELECT @CurrentIndex=1;
     WHILE(@CurrentIndex<=len(@SplitString))
         BEGIN
             SELECT @NextIndex=charindex(@Separator,@SplitString,@CurrentIndex);
             IF(@NextIndex=0 OR @NextIndex IS NULL)
                 SELECT @NextIndex=len(@SplitString)+1;
                 SELECT @ReturnText=substring(@SplitString,@CurrentIndex,@NextIndex-@CurrentIndex);
                 INSERT INTO @SplitStringsTable([value]) VALUES(@ReturnText);
                 SELECT @CurrentIndex=@NextIndex+1;
             END
     RETURN;
 END

/* 二、使用 :传入 字符串  和  间隔符。效果如下所示 */

SELECT  * 
FROM  F_StrToTable( 'a^b^c^d^e^f^d' , '^' )

image.png


关注.png

扫描二维码,关注我的公众号,第一时间获取文章!


知识分享不易,转载请标注来源:http://www.blenderkou.top/contents/13/6365.html
版权申明:欢迎转载,但请注明出处。
一些博文中的参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。

上一篇
sql server 查询存储过程的创建时间 和 最后修改时间

下一篇
SQL server根据数据、字段值反查表名、字段名