延续昨天的问题​ ​将表中某列的内容根据分隔符拆分为行 ​ ​,我们今天来说一下怎么拆开成列。

【SQL】将表中某列的内容根据分隔符拆分为列_分隔符

问题:将DRUGINFO一列,根据分隔符(^)拆分为多列。

需要实现的结果:

【SQL】将表中某列的内容根据分隔符拆分为列_分隔符_02



/*******************************************
* 将表中某列的内容根据分隔符拆分为列
* yangz,2015.01.13
*******************************************/
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 * FROM (
SELECT ID,EVENTNAME,T2.COL,T2.SORT
FROM @TABLE AS T1
CROSS APPLY dbo.strtocolex(T1.DRUGINFO,'^') AS T2
) aa
PIVOT(MAX(COL) FOR SORT IN ([1],[2],[3],[4])) pvt

--说明:

--CROSS APPLY 交叉连接

--T1.DRUGINFO是需要拆分的列,

--dbo.strtocolex是自定义函数,请参考: ​ ​【SQL】字符串系列2:将一个字符串根据特定字符分拆成多行​

python slipt python split 返回值

本文讲述的是string.split(s[, sep[, maxsplit]]),针对string类型的split()函数。它主要是切割字符串,结果返回由字符串元素组成的一个列表,具体怎么使用看下面的代码。1. 无参数的情况a="my name is zhangkang" b="my\nname\nis\nzhangkang" c="my\tname\tis\tzhangkang" a=a.sp

python elif报错 python出现eof

python读文件判断是否已到EOF,也即结尾,一般其它语言都是以EOF直接来判断的,比如 if ( fp.read(chunk_size) == EOF),但python到结尾后是返回空字符串的,所以python可以这样判断:fp = open('path/to/file', 'r', encoding='utf-8') str = '' while True: