gpt4 book ai didi

SQL根据指定分隔符分解字符串实现步骤

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章SQL根据指定分隔符分解字符串实现步骤由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

如果有一个字符串 eg: "sun,star,moon,clouds",想要在MS SQL中根据给定的分隔符','把这个字符串分解成各个元素[sun] [star] [moon] [clouds],如何实现呢?为此,创建一个Function,代码如下:  。

复制代码代码如下

CREATE FUNCTION [dbo].[Split_StrByDelimiter](@String VARCHAR(8000), @Delimiter CHAR(1))  RETURNS @temptable TABLE (items VARCHAR(8000))  AS  BEGIN  DECLARE @idx INT  DECLARE @slice VARCHAR(8000)  SELECT @idx = 1  IF len(@String)<1 OR @String IS NULL RETURN  while @idx!= 0  BEGIN  SET @idx = charindex(@Delimiter,@String)  IF @idx!=0  SET @slice = LEFT(@String,@idx - 1)  ELSE  SET @slice = @String  IF(len(@slice)>0)  INSERT INTO @temptable(Items) VALUES(@slice)  SET @String = RIGHT(@String,len(@String) - @idx)  IF len(@String) = 0 break  END  RETURN  END  。

示例:如果输入  SELECT * FROM dbo.Split_StrByDelimiter('sun,star,moon,clouds',',')  结果返回  sun  star  moon  clouds  在上面的代码做变形,返回有多少个元素  。

复制代码代码如下

CREATE FUNCTION [dbo].[GetCount_Split_StrByDelimiter](@String VARCHAR(8000), @Delimiter CHAR(1))  RETURNS INT  AS  BEGIN  DECLARE @temptable TABLE (items VARCHAR(8000))  DECLARE @SplitCount INT  DECLARE @idx INT  DECLARE @slice VARCHAR(8000)  SELECT @idx = 1  IF len(@String)<1 OR @String IS NULL RETURN 0  while @idx!= 0  BEGIN  SET @idx = charindex(@Delimiter,@String)  IF @idx!=0  SET @slice = LEFT(@String,@idx - 1)  ELSE  SET @slice = @String  IF(len(@slice)>0)  INSERT INTO @temptable(Items) VALUES(@slice)  SET @String = RIGHT(@String,len(@String) - @idx)  IF len(@String) = 0 break  END  SET @SplitCount=(SELECT COUNT(*) FROM @temptable)  RETURN @SplitCount  END  。

示例  SELECT dbo.GetCount_Split_StrByDelimiter('sun,star,moon,clouds',',')  结果返回  4 。

最后此篇关于SQL根据指定分隔符分解字符串实现步骤的文章就讲到这里了,如果你想了解更多关于SQL根据指定分隔符分解字符串实现步骤的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com