某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值

时间:2021-09-26 14:58:15

某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值

存在值信息

表值函数实现:

--实现split功能 的函数 拆分 逗号分开的多个值
ALTER function [dbo].[f_split](@SourceSql varchar(8000),@StrSeprate varchar(10)) returns @temp table(Gid Nvarchar(4000)) 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

关联表结合函数 实现:

SELECT A.Gid FROM OrderDetail B CROSS APPLY dbo.f_split(B.MarketGids,',') AS A

某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值