首页 > 其他分享 >'A,B,C'字符串转换为列形式

'A,B,C'字符串转换为列形式

时间:2023-01-10 21:33:53浏览次数:40  
标签:intPos 转换 -- strValues Sign strTmp 字符串 为列 select


/*

'A,B,C'

字符串转换为:

A
B
C

*/
--【方法一】

CREATE FUNCTION dbo.sf_DS_SplitNVarchar
(
@strValues nvarchar(4000)
)
RETURNS @tblStrList TABLE (id int identity(1,1),value nvarchar(4000))
AS
BEGIN
declare @strTmp nvarchar(4000)
declare @intPos int
select @strValues=ltrim(rtrim(@strValues))

while @strValues<>''
begin
select @intPos=case when charindex(',',@strValues)=0 then len(@strValues) else charindex(',',@strValues)-1 end
select @strTmp=ltrim(rtrim(substring(@strValues,1,@intPos)))
select @strValues=ltrim(rtrim(substring(@strValues,@intPos+2,len(@strValues))))

insert into @tblStrList values(@strTmp)
end

RETURN
END

-- select value from dbo.sf_ds_splitnvarchar('A,B,C')


--==============================================================================================================

--【方法二】

CREATE FUNCTION dbo.sf_SplitVarchar_Sign
(
@strValues varchar(8000), --待分割字符串
@Sign char(1) --分割符
)
RETURNS @tblStrList TABLE (Zid int identity(1,1),value varchar(8000))
AS
BEGIN

declare @strTmp varchar(8000),
@intPos int

select @strValues=ltrim(rtrim(@strValues))
if right(@strValues,1) <> @Sign
select @strValues = @strValues + @Sign

if @strValues <> @Sign
begin
select @intPos = charindex(@Sign,@strValues)
while @intPos > 0
begin
select @strTmp = ltrim(rtrim(substring(@strValues,1,@intPos - 1)))
insert into @tblStrList values(@strTmp)
select @strValues = ltrim(rtrim(substring(@strValues,@intPos + 1,len(@strValues))))
select @intPos = charindex(@Sign,@strValues)
select @intPos = isnull(@intPos,0)
end
end

RETURN
END


-- select value from dbo.sf_SplitVarchar_Sign('A,B,C',',')


标签:intPos,转换,--,strValues,Sign,strTmp,字符串,为列,select
From: https://blog.51cto.com/hzc2012/6000714

相关文章

  • JavaScript 扁平数据与树形结构数据的转换
    一、扁平转树形在JavaScript中,可以使用递归算法将扁平的数据转换为树形结构。扁平数据通常是一个带有parentId属性的数组,而树形结构通常是一个带有children属性......
  • Mysql切割字符串
     我们常常会遇到需要处理字段中字符串的需求,包括切割、拼接以及搜索等等,在这里介绍几个常用的切割字符串的函数,首先我们在表格中加入我们的实验字段值:https://www.cnblogs......
  • leetcode简单(数组,字符串,链表):[168, 171, 190, 205, 228, 448, 461, 876, 836, 844]
    目录168.Excel表列名称171.Excel表列序号190.颠倒二进制位205.同构字符串228.汇总区间448.找到所有数组中消失的数字461.汉明距离876.链表的中间结点836.矩形重......
  • JavaScript 将base64 转换为File
    在JavaScript中,可以使用Blob对象将base64字符串转换为File对象。 方法一(推荐,但存在兼容性问题):首先,你需要从base64字符串中获取文件类型,然后将文件类型和......
  • python 使用函数名的字符串调用函数(4种方法)
    先看一个例子:>>>deffoo():print"foo">>>defbar():print"bar">>>func_list=["foo","bar"]>>>forfuncinfunc_list:func()TypeError......
  • JavaScript 中URL 查询字符串(query string)的序列与反序列化
    方法一:在JavaScript中,可以使用URLSearchParams对象来处理URL中的查询字符串。序列化(将JavaScript对象转换为查询字符串)可以使用URLSearchParams对象的append(......
  • 【shell】shell字符串分割|文件分割|剪切|截取 (转)
    目录一、字符串分割1、awk分割2、利用shell中变量的字符串替换成空格分割3、设置分隔符,通过IFS变量4、利用tr指令实现字符替换二、文件分割按行切割按时间切......
  • 5. C语言scanf gets输入字符串的区别
    1.scanf这种格式串不能接收带空格的字符串,比如输入"abc123678"的话,字符串只会接收到abc,遇空格就结束2. 使用 gets() 时,系统会将最后“敲”(Enter)的换行符从缓冲区中......
  • python类型转换为yaml
    一、参考链接​​https://pyyaml.org/wiki/PyYAMLDocumentation​​二、python类型转换为yaml#-*-coding:utf-8-*-#@Time:2022/1/221:53#@Author:lujunxian#......
  • SQL Server日期与字符串之间的转换
    本文导读:在SQLServer数据库中,SQLServer日期时间格式转换字符串可以改变SQLServer日期和时间的格式,是每个SQL数据库用户都应该掌握的。下面主要就介绍一下SQLServer日期......