某表中字段值存在多个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

 

posted @ 2019-07-23 16:56  蜜雪粮液  阅读(402)  评论(0编辑  收藏  举报