简单的讲就是表中的一个字段存储的以逗号分隔的值,然后想通过逗号分成行,网上找了这种方法挺不错的。
如下例子,ID列表是需要进行拆分的列,表t是对应的数据表,红色标注的是需要改成我们实际业务表或字段。直接运行即可,但这个语句有个缺点,在此基础上再加where条件的话多数会导致SQL异常好像是substring长度不够,使用的时候还是建议先进行where过滤,或在存储过程里使用。
select id, SUBSTRING(t.ID列表, number ,CHARINDEX(',',t.ID列表+',',number)-number) as ID列表 from dbo.基础单 t,master.dbo.spt_values s where s.number >=1 and s.type = 'P' and SUBSTRING(','+t.ID列表,s.number,1) = ','