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

今天遇见一个业务需求:需要吧一条数据里分号隔开的数据转换为多条数据。
sql分割分号字符串形成多条数据_第1张图片
比如上面这张图 数据:
TacticProtocolGUID
01.06.63;01.06.632;01.06.633;01.06.74;01.06.79;01.06.81

通过执行sql语句,转换为多行数据:
sql分割分号字符串形成多条数据_第2张图片
下面附上代码:
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

你可能感兴趣的:(sql数据库,sql)