指点成金-最美分享吧

登录

sqlserver 怎么分割字符串

佚名 举报

篇首语:本文由小编为大家整理,主要介绍了sqlserver 怎么分割字符串相关的知识,希望对你有一定的参考价值。

如楼上给的 单独分割一部分    也可用下面的函数 分割出一个集合

-- 1.0 拆分字符串 参数 @strSource要操作的字符串 @strSeparator分隔符
CREATE FUNCTION [dbo].fn_splitStr( @strSource NVARCHAR(4000),@strSeparator NVARCHAR(10) )
RETURNS @tbResult TABLE(id INT IDENTITY(1,1),rs NVARCHAR(1000))
AS
BEGIN
   DECLARE @dwIndex INT,@strResult NVARCHAR(1000),@dwSeparatorLen INT=LEN(@strSeparator);
   SET @dwIndex = CHARINDEX(@strSeparator,@strSource);-- 取得第一个分隔符的位置
   WHILE @dwIndex>0
   BEGIN
      SET @strResult = LEFT(@strSource,@dwIndex-1);
      INSERT @tbResult VALUES(@strResult);
      
       --将要操作的字符串去除已切分部分
      SET @strSource = SUBSTRING(@strSource,@dwIndex+LEN(@dwIndex),LEN(@strSource));
      SET @dwIndex = CHARINDEX(@strSeparator,@strSource); --循环量增加
   END
   --处理最后一节
   IF LEN(@strSource) > 0 INSERT @tbResult VALUES(@strSource)
   RETURN;
END
GO

参考技术A left
right
substring

sqlserver 函数

 

sqlserver数据库中字符串分割函数:

使用语句1查询出来的结果为张三,李四,王五。这个receivername字段里存放了多个人的姓名。

1.select v.receivername from T_SimpleFlow_MainInfo  where v.id=52;

使用语句2查询出来的结果是按 ‘,’ 分割之后的结果,显示为3列 分别为 张三   李四   王五 。

2.select sp.value from T_SimpleFlow_MainInfo v
       cross  apply string_split(v.receivername,",") sp where v.id=52 ;

以上是关于sqlserver 怎么分割字符串的主要内容,如果未能解决你的问题,请参考以下文章