博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1 SQL SERVER 实现字符串分割成table的方法
阅读量:5088 次
发布时间:2019-06-13

本文共 1812 字,大约阅读时间需要 6 分钟。

CREATE FUNCTION [dbo].[fn_SplitStringToTable](    @p_Input     VARCHAR(MAX),    @p_Delimeter CHAR(1) = ',')RETURNS @l_Table TABLE(    Id       INT IDENTITY(1, 1),    Value    VARCHAR(511),    Position INT,    Length   INT)BEGIN   DECLARE @l_Position INT,           @l_Value    VARCHAR(256)      SELECT @l_Position = 1,          @l_Value = ''      IF RIGHT(@p_Input, LEN(@p_Delimeter)) <> @p_Delimeter      SET @p_Input = @p_Input + @p_Delimeter      WHILE SUBSTRING(@p_Input, @l_Position, 1) = CHAR(10) OR        SUBSTRING(@p_Input, @l_Position, 1) = CHAR(13)   BEGIN      SELECT @l_Position = @l_Position + 1   END      WHILE @l_Position <= CHARINDEX(@p_Delimeter, @p_Input, @l_Position)   BEGIN      SET @l_Value = RTRIM ( LTRIM ( SUBSTRING ( @p_Input,                                                 @l_Position,                                                 CHARINDEX ( @p_Delimeter,                                                             @p_Input,                                                             @l_Position) - @l_Position ) ) )            IF NOT EXISTS ( SELECT 1                        FROM @l_Table                       WHERE Value = @l_Value )      BEGIN         INSERT INTO @l_Table ( Value, Position, Length )              VALUES ( @l_Value, @l_Position, CHARINDEX ( @p_Delimeter,                                                          @p_Input,                                                          @l_Position ) - @l_Position )      END            SELECT @l_Position = CHARINDEX(@p_Delimeter, @p_Input, @l_Position) + 1            WHILE SUBSTRING(@p_Input, @l_Position, 1) = CHAR(10) OR         SUBSTRING(@p_Input, @l_Position, 1) = CHAR(13)      BEGIN         SELECT @l_Position = @l_Position + 1      END   END   RETURNEND

 

转载于:https://www.cnblogs.com/mibing/p/7447234.html

你可能感兴趣的文章
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
java类加载和对象初始化
查看>>
对于负载均衡的理解
查看>>
django简介
查看>>
window.event在IE和Firefox的异同
查看>>
常见的js算法面试题收集,es6实现
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Windows10 下Apache服务器搭建
查看>>
HDU 5458 Stability
查看>>
左手坐标系和右手坐标系
查看>>
solr后台操作Documents之增删改查
查看>>
http://yusi123.com/
查看>>
文件文本的操作
查看>>
Ubuntu linux下gcc版本切换
查看>>
记一次Web服务的性能调优
查看>>
jQuery.form.js使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>
UVa540 Team Queue(队列queue)
查看>>