日期:2014-05-17  浏览次数:20535 次

老革命碰到新问题,行列转换,求指点。
之前有个朋友发贴,要求按照自定义的字符,将字符串分割后,存入不同的列。
这个做法有很多种,这里就不一一列举了。
我自己写了个SQL语句,可以不借助函数,临时表等,直接分割字符串。
源数据:
ID          date                    data                        
----------- ----------------------- ----------------------------
1           2014-01-20 11:36:08.943 1asd 2assd 3asd 4das 5gfsd  
2           2014-01-20 11:36:08.943 6asd 7assd 8asd 9das 10agfsd

分割后:
ID  date                    data   
--- ----------------------- -------
1   2014-01-20 11:36:44.993 1asd   
1   2014-01-20 11:36:44.993 2assd  
1   2014-01-20 11:36:44.993 3asd   
1   2014-01-20 11:36:44.993 4das   
1   2014-01-20 11:36:44.993 5gfs   
2   2014-01-20 11:36:44.993 6asd   
2   2014-01-20 11:36:44.993 7assd  
2   2014-01-20 11:36:44.993 8asd   
2   2014-01-20 11:36:44.993 9das   
2   2014-01-20 11:36:44.993 10agfs 

如何使用SQL语句直接得出如下结果:
ID  date                    data1   data2   data3   data4   data5   
--- ----------------------- ------- ------- ------- ------- -------
1   2014-01-20 11:36:44.993 1asd    2assd   3asd    4das    5gfs
2   2014-01-20 11:36:44.993 6asd    7assd   8asd    9das    10agfs

要求不借助函数,临时表任何其他手段,可以动态显示(列数不确定)。
我看了很多资料,也没能像出来怎么写,这里大拿多,所以来问问。
pivot是不能用了,因为列中没有相同值可以分组。

------解决方案--------------------
动态行专列应该可以吧,你有什么难言之隐?
------解决方案--------------------
直接从分割后得到数据还是要从元数据开始?我在年会,不然帮你写一下
------解决方案--------------------
引用:
Quote