SQL行转列与列转行的方法
SQL行转列与列转行的方法
本文小编为大家详细介绍“SQL行转列与列转行的方法”,内容详细,步骤清晰,细节处理妥当,希望这篇“SQL行转列与列转行的方法”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
1.数据集
+---+----------+|id|login_date|+---+----------+|01|2021-02-28||01|2021-03-01||01|2021-03-02||01|2021-03-04||01|2021-03-05||01|2021-03-06||01|2021-03-08||02|2021-03-01||02|2021-03-02||02|2021-03-03||02|2021-03-06||03|2021-03-06|+---+----------+
以"连续登录"中的数据为例:
selectid,concat_ws(',',collect_list(login_date))cwfromdatagroupbyid;
结果:
+---+----------------------------------------------------------------------------+
|id |cw |
+---+----------------------------------------------------------------------------+
|01 |2018-02-28,2018-03-01,2018-03-02,2018-03-04,2018-03-05,2018-03-06,2018-03-08|
|02 |2018-03-01,2018-03-02,2018-03-03,2018-03-06 |
|03 |2018-03-06 |
+---+----------------------------------------------------------------------------+
以上面SQL生成的数据为基准,执行下列SQL:
selectid,login_datefromtlateralviewexplode(split(cw,','))bASlogin_date;
结果:
+---+----------+
|id |login_date|
+---+----------+
|01 |2018-02-28|
|01 |2018-03-01|
|01 |2018-03-02|
|01 |2018-03-04|
|01 |2018-03-05|
|01 |2018-03-06|
|01 |2018-03-08|
|02 |2018-03-01|
|02 |2018-03-02|
|02 |2018-03-03|
|02 |2018-03-06|
|03 |2018-03-06|
+---+----------+
读到这里,这篇“SQL行转列与列转行的方法”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注恰卡编程网行业资讯频道。
推荐阅读
-
实用microsoft(sql server 7 教程 怎么配置sqlserver的远程连接)
怎么配置sqlserver的远程连接?SQLServer2008默认是不愿意远程桌面的,如果不是想在本地用SSMS连接远战服务器...
-
如何使用 SQL Server FILESTREAM 存储非结构化数据?
-
安全攻防六:SQL注入,明明设置了强密码,为什么还会被别人登录
-
利用PHP访问MySql数据库以及增删改查实例操作
关于利用PHP访问MySql数据库的逻辑操作以及增删改查实例操作PHP访问MySql数据库˂?php//造连...
-
SQL注入速查表
-
「Web安全」SQL注入的基石
-
每个互联网人才都应该知道的SQL注入
-
MySQL中防止SQL注入
喜欢本文章请关注点赞加转发如何保护数据免受SQL注入攻击?采取措施保护数据免受基于应用程序的攻击,例如SQL注入。千...
-
mybatis中如何防止sql注入和传参
-
SQL注入之环境搭建(二)-PHP+Mysql注入环境搭建