Sql 根据逗号分隔出目标字符

来源:互联网 发布:做个网络推广容易 编辑:程序博客网 时间:2024/05/01 03:06
declare @str varchar(20) set @str ='A,B,C,D'select left(@str,charindex(',',@str)-1) --得到Aselect left(substring(@str,charindex(',',@str)+1,len(@str)),charindex(',',substring(@str,charindex(',',@str)+1,len(@str)))-1)                                 --得到Bselect reverse(left(substring(reverse(@str),charindex(',',reverse(@str))+1,len(reverse(@str))),charindex(',',substring(reverse(@str),charindex(',',reverse(@str))+1,len(reverse(@str))))-1)) --得到Cselect substring(reverse(@str),1,charindex(',',reverse(@str)) - 1) --得到Dselect reverse(substring(reverse(@str),1,charindex(',',reverse(@str)) - 1)) --得到Dselect substring(@str,charindex(',',@str)+1,len(@str)) --得到B,C,D--加CAST判断declare @str varchar(20) set @str ='224729,221729,222729,223729'  select  CASE when charindex(',',@str)>=0 then left(@str,charindex(',',@str)-1)else '0' end --得到Adeclare @str varchar(20) set @str ='224729,221729,222729,223729'  select CASE  when charindex(',',substring(@str,charindex(',',@str)+1,len(@str)))>=0  then left(substring(@str,charindex(',',@str)+1,len(@str)),charindex(',',substring(@str,charindex(',',@str)+1,len(@str)))-1) else '0' end --得到Bdeclare @str varchar(20)   set @str ='224729,221729,222729,223729'  select CASE when charindex(',',substring(reverse(@str),charindex(',',reverse(@str))+1,len(reverse(@str))))>0 then  reverse(left(substring(reverse(@str),charindex(',',reverse(@str))+1,len(reverse(@str))),charindex(','  ,substring(reverse(@str),charindex(',',reverse(@str))+1,len(reverse(@str)))  )-1))else '0' end  ---得到Cdeclare @str varchar(20) set @str ='224729,221729,222729,223729'  select CASE when charindex(',',@str)>0 then right(@str,charindex(',',@str)-1) else '0' end --得到D


1 0