sql 分隔符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 分隔符相关的知识,希望对你有一定的参考价值。

表A id name
001 苹果
002 香蕉
003 橘子
004 菠萝
现在在表B中有这么一个字段';001;002;004;',如何用sql语句取到表A中对应的name值,并且这么显示'苹果;香蕉;菠萝',求救,非常感谢

给你一个能处理分隔符的函数,这函数是sql server平台的,返回一个临时表

if exists(select name from sysobjects where id = object_id(N'jk01_f_split'))
drop function jk01_f_split
go

create function jk01_f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>''
insert @temp values(@SourceSql)
return
end
go

用法
select * from jk01_f_split(字段名, '分隔符')

后续的汉字拼接显示,建议你用其它程序实现
参考技术A 如何用sql语句取到表A中对应的name值
select b.id ,a.name from b join a on b.id like '%a%';
参考技术B select 001 as 苹果,002 as 香蕉,004 as 菠萝 from 表B 参考技术C select name from A where id in(select B的字段 from B where B的字段='001') 参考技术D select id,name from A where id in(select B的字段 from B where B的字段 in('001','002','004'));

以上是关于sql 分隔符的主要内容,如果未能解决你的问题,请参考以下文章

sql一个字段内有分隔符如何拆分成多行

sql SQL SERVVER中的千位分隔符

SQL 2005 在分隔符上拆分逗号分隔列

SQL:使用分隔符值拆分字符串

多个 SQL 查询不适用于 DBeaver 上的分隔符

SQL 加载程序行分隔符覆盖