使用SQL如何把用逗号等字符隔开的字符串转换成列表
发布网友
发布时间:2022-04-08 07:32
我来回答
共3个回答
懂视网
时间:2022-04-08 11:54
),@pattern varchar(10))
returns @temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,a varchar(100))
--实现split功能 的函数
--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :
as
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>‘‘
insert @temp values(@aString)
return
end
传入sql数组字符串,输出table
标签:
热心网友
时间:2022-04-08 09:02
如何把用逗号等字符隔开的字符串转换成列表,下面依逗号分隔符为例:
比如有一个字符串,其值为:香港,张家港,北京,上海
用SQL把这个字符串转换成列表的方法是:
1、方法一
WITH A AS (SELECT '香港,张家港,北京,上海' A FROM DUAL)
SELECT DECODE(B,0,SUBSTR(A,C),SUBSTR(A,C,B-C)) city FROM
(
SELECT A,B,(LAG(B,1,0) OVER(ORDER BY LV))+1 C
FROM(
SELECT A,INSTR(A,',',1,LEVEL) B,LEVEL LV FROM A
CONNECT BY LEVEL <=(LENGTH(A) - LENGTH(REPLACE(A,',','')))+1
)
)
热心网友
时间:2022-04-08 10:20
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER function [dbo].[分解字符到表_1]
( @字符串变量 varchar(8000),@分隔符 varchar(1) )
returns @ca1 table(代单号 varchar(100))
as
begin
--declare @字符串变量 varchar(8000),@分隔符 varchar(1)
--declare@ca1 table(代单号 varchar(100))
--set @字符串变量='^^^'
--set @分隔符='^'
declare @cAllDdh varchar(8000)
declare @aa varchar(100)
set @cAllDdh=ltrim(rtrim(@字符串变量))
set @aa=''
while charindex(@分隔符,@cAllDdh)>0
begin
if charindex(@分隔符,@cAllDdh)>0
begin
set @aa=left(@cAllDdh ,charindex(@分隔符,@cAllDdh )-1) --set @nID=cast(left(@cAllDdh ,charindex(@分隔符,@cAllDdh )-1) as int)
end
else begin --set @nID=cast(@cHid as int)
set @aa=@cAllDdh
end
set @aa=rtrim(ltrim(@aa))
set @aa=replace(@aa,char(13),'')
insert into @ca1(代单号) values(@aa)
if len(@cAllDdh)-len(@aa)>0
set @cAllDdh=substring(@cAllDdh,charindex(@分隔符,@cAllDdh)+1,len(@cAllDdh)-len(@aa)) --将ID字符串去除已截取的部分
end
insert into @ca1(代单号) values(@cAllDdh)
return
end
mssql,逗号分隔的字符串转换成一列数据
Select a.xm,xk=substring(a.xk,b.number,charindex(',',a.xk+',',b.number)-b.number)from 表A a join master..spt_values b ON b.type='p' AND b.number BETWEEN 1 AND LEN(a.xk)where substring(','+a.xk,b.number,1)=','
SQL逗号分割一列数据的值,将结果变成一行多列
create table #t(ID int,Content varchar(4000))insert into #t(ID,Content)select 1,'22,5000,3000'union all select 2,'1,35,200,2'union all select 3,'802,22'union all select 4,'213,354,2002,22,500'select * from #t declare @sql nvarchar(4000),@i intset @i=1while exis...
sql server里如何将一组用逗号分隔的字符串分解并插入到另一张表中...
1.得到这个字符串。如:111,222,333 2.得到带","字符串的长度。如:11 3.用replace把","去掉,得到长度。如:9 4.到这步,我们就知道,这个字符串有2个逗号,也就是说,有3个有效数据。5.用while,substring开始循环得到数据,然后插入到表中 如:set count=0 while(coung<3)--我们已经知...
MySQL 逗号分隔的字符串如何直接在SQL语句中拆分并组合使用?
这个应该是你想要的结果,因为贴不了SQL语句,所以贴图给你看下吧。参考这个改一下应该就可以了。原理,你首选需要把你zbb中员工编号给拆开陈两个列,然后用着两个列的值,分别和ygb中的id进行关联,分别得到两个列的姓名。然后再把这两个列的姓名用逗号连接拼装成一个列。
sql来,请教怎么将查询的一列数据拼接用逗号隔开显示成一条记录
SELECT STUFF(( SELECT ',' + User_Name FROM dbo.Jv_System_User FOR XML PATH('') ), 1, 1, '') AS Name
如何用sql语句将一列多行数据拼接逗号隔开形成一条记录
mysql中,有标准函数,group_concat(name),直接返回连接好的字符串,并以逗号分割,如果记录比较多,超过函数返回值的最大值,可以调整mysql启动参数,增加显示值的长度。
MySQL 中将使用逗号分隔的字段转换为多行数据
首先,编写SQL查询与迁移语句。原始数据需从bus_mark_info表中提取,并通过insert into ... select迁移至新表。示例SQL如下:利用mysql的help_topic表进行关联。help_topic表特性为id从0开始递增,固定数据量701。对于每条bus_mark_info记录,预期生成关联数据数量等于pages字段逗号数量加1。通过设置正确...
sql server 用户自定义行集如何实现逗号分隔字符的转换为行集_百度知...
set @i=charindex(',',@SourceSql)while @i>=1 begin insert @temp values(left(@SourceSql,@i-1))set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)set @i=charindex(',',@SourceSql)end if @SourceSql<>','insert @temp values(@SourceSql)return end 用法 select * ...
SQL中逗号分隔的查询结果转换成单个字符串放到in语句里
select student from xxhd a, school b where patindex('%' || a.school || '%',b.school)>0
sql怎么把一个字段以逗号间隔的字符,全部依次放到另一个字段中_百度知...
sqlserver处理方法 建表及数据 create table table1 (content varchar(200))insert into table1 values ('aa,bb,cc,dd,ee')执行 WITH roy AS ( SELECT COl1 = CAST(LEFT(content, CHARINDEX(',', content + ',') - 1) AS NVARCHAR(100)) , Split = CAST(STUFF(content + '...