SQL中经常写行转列、列转行的语句,除了case when、聚合函数,还有没有更高效、更简洁的写法?
示例数据 假设已有一张表pageAds,它有三列数据,第一列是pageid string,第二列是col1 array,第三列是col2 array,详细数据如下。 pageid col1 col2 front_page [1, 2, 3] [“a”, “b”, “c”] contact_page [3, 4, 5] [“d”, “e”, “f”]
使用示例 单个Lateral View语句 示例1:拆分col1。命令示例如下: select pageid, col1_new, col2 from pageAds lateral view explode(col1) adTable as col1_new;
返回结果如下: ±-----------±-----------±-----------+ | pageid | col1_new | col2 | ±-----------±-----------±-----------+ | front_page | 1 | [“a”,“b”,“c”] | | front_page | 2 | [“a”,“b”,“c”] | | front_page | 3 | [“a”,“b”,“c”] | | contact_page | 3 | [“d”,“e”,“f”] | | contact_page | 4 | [“d”,“e”,“f”] | | contact_page | 5 | [“d”,“e”,“f”] | ±-----------±-----------±-----------+ ———————————————— 版权声明:本文为CSDN博主「vthinkwen」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_24836169/article/details/113886217
赞0
踩0