不积跬步,无以至千里;不积小流,无以成江海。

Dean's blog

  • Join Us on Facebook!
  • Follow Us on Twitter!
  • LinkedIn
  • Subcribe to Our RSS Feed

MSSQL拆分逗号分析的字符串

假设有这样一个数据集

图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长度大于这个时,方案会有问题,需要按实际情况使用。

不允许评论
粤ICP备17049187号-1