场景
表中之存了多个编号 没存汉字? 所以需要根据编号进行符号分割 查询别的表进行和汉字关联
select
(SELECT ',' +DISPLAYVALUE FROM 关联编号的子表
WHERE 编号 in(select * from fun_splitfg(WC.字段,'、'))FOR XML PATH(''))
,WC.*
from 需要分割的表 WC
根据上面的SQL 即可实现(结果中去掉第一个符号就可以了截取一下字符串)
需要用到?fun_splitfg 函数?
ALTER function [fun_splitfg]
(
@str varchar(2000),--需要分割的字符串(例如:1,2,3,4,5 我|和|你)
@spliter varchar(2)--分隔符(例如 , | $)
)
returns @tb table(ch varchar(200))--返回表
as
begin
declare @num int,@pos int, @nextpos int
set @num = 0
set @pos = 1
while(@pos <= LEN(@str))
begin
select @nextpos = CHARINDEX(@spliter, @str, @pos)
if(@nextpos = 0 or @nextpos is null)
select @nextpos = LEN(@str) + 1
insert into @tb values(RTRIM(LTRIM(SUBSTRING(@str, @pos, @nextpos - @pos))))
select @pos = @nextpos+1
end
return
end
这个函数可根据符号分割成每行 然后在用 in 即可?
|