看了几篇行转列的文章,但都不是我想要的,然后借鉴别人的自己又想了想,如果想要实现
l,a,b
c,1,2
d,3,4
到
l,c,d
a,1,3
b,2,4
的转换,SQL需要两步。
第一步:把当前数据从二维变成一维
c, d
a1b2,a3b4
第二步:把一维再次变成二维
l,c,d
a,1,3
b,2,4
代码:第一步直接用concat_ws()把一行数据总结一起就可以,第二步用
case when split(a)[0]='a' then a
when split(a)[2]='b' then b end as l,
case when ...end as c,
case when...end as d
思路是这样,哈哈