sql分割分号字符串形成多条数据

今天遇见一个业务需求:需要吧一条数据里分号隔开的数据转换为多条数据。
在这里插入图片描述
比如上面这张图 数据:
TacticProtocolGUID
01.06.63;01.06.632;01.06.633;01.06.74;01.06.79;01.06.81

通过执行sql语句,转换为多行数据:
在这里插入图片描述
下面附上代码:
SELECT
a.BUGUID,
a.TacticProtocolGUID,
substring(a.ProductAndServiceCode , b.number , charindex(’;’ , a.ProductAndServiceCode + ‘;’ , b.number) - b.number) AS ProductTypeCode
FROM cg_TacticProtocol AS a
JOIN master…spt_values b
on b.type=‘p’ and b.number between 1 and len(a.ProductAndServiceCode)
WHERE
SUBSTRING(’;’ + a.ProductAndServiceCode , b.number , 1) = ‘;’
AND TacticProtocolGUID=‘8C938147-D7B8-4542-95BF-87BA86C71C07’

注意:SUBSTRING,master…spt_values

猜你喜欢

转载自blog.csdn.net/qq_37213281/article/details/109721679