假设有这样一个数据集
图1
将Corporates列按逗号分析返回多行,如下:
SELECT p.*, SUBSTRING(p.Corporates+',',s.number,CHARINDEX(',',p.Corporates+',',s.number)-s.number)
FROM Pingji p ,master..spt_values s
WHERE s.type='p'
AND s.number>0
AND SUBSTRING(','+p.Corporates,s.number,1)=','
AND p.Name = '广州名至照明发展有限公司'
这里以一家公司的数据为示例,返回的效果:

这里使用了master..spt_values,这个是一个系统表,但type=p时,number最大为2047,这样,如果Corporates长度大于这个时,方案会有问题,需要按实际情况使用。