SQL查询语句将一行变成多行
2017-03-01 17:04
260 查看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | select * from t ; with cte as ( select TICKET_ID,CHARINDEX( ';' ,emp_id+ ';' ) as station, SUBSTRING (EMP_ID,1,CHARINDEX( ';' ,emp_id+ ';' )-1) as emp_id from t union all select a.ticket_id, CHARINDEX( ';' ,a.emp_id+ ';' ,b.station+1) , SUBSTRING (a.EMP_ID,b.station+1,CHARINDEX( ';' ,a.emp_id+ ';' ,b.station+1)-b.station-1) from t as a join cte as b on a.TICKET_ID=b.ticket_id where CHARINDEX( ';' ,a.emp_id+ ';' ,b.station+1)>0) select * from cte --结果 TICKET_ID EMP_ID ---------- -------------------------------------------------- PO14100001 000001;000002;000003 PO14100002 000001;000004 PO14100003 000003;000004 PO14100004 000001;000002 PO14100005 000001;000002;000003 PO14100006 000001 (6 行受影响) TICKET_ID station emp_id ---------- ----------- -------------------------------------------------- PO14100001 7 000001 PO14100002 7 000001 PO14100003 7 000003 PO14100004 7 000001 PO14100005 7 000001 PO14100006 7 000001 PO14100005 14 000002 PO14100005 21 000003 PO14100004 14 000002 PO14100003 14 000004 PO14100002 14 000004 PO14100001 14 000002 PO14100001 21 000003 (13 行受影响) |
相关文章推荐
- 关于多行合并成一行的SQL查询语句
- SQL查询案例:多行转换为一行
- SQL查询,2个表,第一个表一行多个标题,第二个表1列,联合查询变成一个表,1行多个标题变成多个列
- Oracle 联接查询,字表多行字段合并为一行,以逗号分隔的查询SQL
- Mysql上查询字段多行变成一行,函数小技巧.
- SQL语句 多行变一行 orancle数据库
- [转]用 SQL 语句对一行数据拆分成多行的方法
- mysql 多行并在一行查询语句的写法
- SQL 语句行数据拆成多行及多行数据合并成一行的方法
- [数据库] SQL查询语句表行列转换及一行数据转换成两列
- (转)SQL查询案例:多行转换为一行
- SQL查询案例:多行转换为一行
- 将一行逗号分隔的文本分成多行记录的SQL语句
- SQL 语句一行拆成多行及多行合并成一行的方法
- postgresql中sql多行语句合并一行
- Sql Server-实现多行合并为一行的SQL语句
- SQL查询案例:多行转换为一行(转)
- sql查询 ,多行数据合并成一行,并且显示合并后某一列的值拼接结果
- SQL查询案例:多行转换为一行
- SQL 查询一列多行返回一行