问题:将DRUGINFO一列,根据分隔符(^)拆分为多列。
需要实现的结果:
实现方法:
DECLARE @TABLE TABLE (ID INT,EVENTNAME VARCHAR(200),DRUGINFO VARCHAR(1000))
INSERT INTO @TABLE
SELECT 15 AS ID,'药品质量事件报告表-药品质量事件报告表' AS EVENTNAME,'生理盐水^100毫升^四药^' AS DRUGINFO
UNION
SELECT 15,'药品质量事件报告表-药品质量事件报告表','5%葡萄糖^200毫升^四药^'
UNION
SELECT 47,'药品质量事件报告表-药品质量事件报告表','能全力(1.5)^500ml^制药^1407011'
UNION
SELECT 91,'药品质量事件报告表-药品质量事件','参芎葡萄糖注射液^100ml/瓶^注射剂有限公司^20140460'
UNION
SELECT 131,'药品质量事件','5%葡萄糖250ml^250ml^四药^1406261504-A'
UNION
SELECT 132,'药品质量事件','5%葡萄糖250ml^250ml^四药^1406261504-A'
UNION
SELECT 144,'药品质量事件','0.9%氯化钠^250ml^四药^1407233602'
--拆分为行
SELECT ID,EVENTNAME,T2.COL,T2.SORT
FROM @TABLE AS T1
CROSS APPLY dbo.strtocolex(T1.DRUGINFO,'^') AS T2
说明:
--说明:
--CROSS APPLY 交叉连接
--T1.DRUGINFO是需要拆分的列,
--dbo.strtocolex是自定义函数,请参考:【SQL】字符串系列2:将一个字符串根据特定字符分拆成多行