SQL 列转行 和行转列

列转多行场景:

​ 表中的某个字段是由多个字符串拼接而成,需要按照每个拼接的字符串转换成多行,比如 :【手机品牌】字段里的内容是 小米,华为,苹果;按照这个几个类别进行分组;

原始数据:

ID 厂库名称 厂库地址 手机品牌类型
1 手机厂库 xxx路xxx街道 小米,华为,苹果

目标数据:

ID 厂库名称 厂库地址 手机品牌类型
1 手机厂库 xxx路xxx街道 小米
1 手机厂库 xxx路xxx街道 华为
1 手机厂库 xxx路xxx街道 苹果

ORACLE

select trim(regexp_substr(T.手机品牌, '[^,]+', 1, levels.column_value)
from 表名 T,table(cast(multiset(select level from dual connect by level <= length(regexp_replace(t.ERROR_RULE, '[^,]+')) + 1) as sys.OdciNumberList)) levels

SPARK

select explode(split(T.手机品牌,",")  from 表名

MYSQL

select substring_index(substring_index(T.手机品牌,',', h.id + 1 ),',',-1)
from 表名 T
JOIN TABLE_HELP h ON h.id < (length(T.手机品牌) - length(REPLACE(T.手机品牌,',','')) + 1);/*==============================================================*/
/* Table: TABLE_HELP                                */
/*==============================================================*/
CREATE TABLE TABLE_HELP (ID int(4) NOT NULL comment '个数',primary key (ID)
);
comment on table TABLE_HELP is
'列转行协助表';
-- ----------------------------
-- Records of TABLE_HELP
-- ----------------------------
INSERT INTO TABLE_HELP VALUES (0);
INSERT INTO TABLE_HELP VALUES (1);
INSERT INTO TABLE_HELP VALUES (2);
INSERT INTO TABLE_HELP VALUES (3);
INSERT INTO TABLE_HELP VALUES (4);
INSERT INTO TABLE_HELP VALUES (5);
INSERT INTO TABLE_HELP VALUES (6);
INSERT INTO TABLE_HELP VALUES (7);
INSERT INTO TABLE_HELP VALUES (8);
.....

多行转列场景:

其实 就是跟上面的场景 反过来:

原始数据:

ID 厂库名称 厂库地址 手机品牌类型
1 手机厂库 xxx路xxx街道 小米
1 手机厂库 xxx路xxx街道 华为
1 手机厂库 xxx路xxx街道 苹果

目标数据:

ID 厂库名称 厂库地址 手机品牌类型
1 手机厂库 xxx路xxx街道 小米,华为,苹果

ORACLE

select WM_CONCAT(T.手机品牌类型) from 表名 T group by T.厂库名称

SPARK

select concat_ws(',',collect_list(T.手机品牌类型)) from 表名 T group by T.厂库名称

MYSQL

select GROUP_CONCAT(T.手机品牌类型,',') from 表名 T group by T.厂库名称

SQL 行转列 和 列转行 整理相关推荐

  1. SQL 行转列 列转行 Oracle转置函数函数pivot、unpivot 解决wm_concat 没有排序

    https://www.cnblogs.com/mellowsmile/p/4642306.html HH 终风且暴,顾我则笑,谑浪笑敖,中心是悼. 终风且霾,惠然肯来,莫往莫来,悠悠我思. 博客园 ...

  2. SQL行转列、列转行

    SQL行转列.列转行 这个主题还是比较常见的,行转列主要适用于对数据作聚合统计,如统计某类目的商品在某个时间区间的销售情况.列转行问题同样也很常见. 一.整理测试数据 create table wyc ...

  3. 重温SQL——行转列,列转行

    原文出处:http://www.cnblogs.com/kerrycode/archive/2010/07/28/1786547.html 行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通 ...

  4. 重温SQL——行转列,列转行(转:http://www.cnblogs.com/kerrycode/archive/2010/07/28/1786547.html)...

    行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现. 用传统的方法,比较好理解.层次 ...

  5. hive 行转列和列转行的方法_面试常考!SQL行转列和列转行

    关注上方"数据挖掘工程师",选择星标,关键时间,第一时间送达!行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SE ...

  6. as cast float server sql_面试常考!SQL行转列和列转行

    来源:CSDN 作者:潇湘隐者 原文地址:www.cnblogs.com/kerrycode/archive/2010/07/28/1786547.html 大家好,我是小五 今天和大家分享的内容是关 ...

  7. SQL 行转列、列转行

    行转列,列转行是我们在开发过程中经常碰到的问题. 1.行转列一般通过CASE WHEN 语句来实现 2.也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现. 用传统的方法,比较好 ...

  8. 做图表统计你需要掌握SQL Server 行转列和列转行

    原文:做图表统计你需要掌握SQL Server 行转列和列转行 说在前面 做一个数据统计和分析的项目,每天面对着各种数据,经过存储过程从源表计算汇总后需要写入中间结果表以提高数据使用效率,那么此时就需 ...

  9. SQL行转列,列转行

    我们都知道在sql查询中,union 是增行,join是增列,但是如果碰到需要行转列,列转行时,一味的使用 join来完成则会变的异常繁杂.如把一天24小时的行转换成列,则需要join24次,既不方便 ...

  10. SQL——行转列,列转行

    重温SQL--行转列,列转行 行转列,列转行是我们在开发过程中经常碰到的问题.行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现. ...

最新文章

  1. Linux中如何使用Sipcalc计算IP子网
  2. php7 echo无法显示,PHP7 echo和print语句实例用法
  3. 两次备考信息系统项目管理师长篇心路历程附考试技巧
  4. pycharm安装pyqt5失败_PyQt5安装与Pycharm集成配置开发环境
  5. html5--7-33 阶段练习5
  6. 基于JAVA+SpringMVC+Mybatis+MYSQL的课堂考勤系统
  7. 怎样修改安卓位置服务器,修改安卓定位服务器地址
  8. 微信聊天小程序——(四、聊天页面)
  9. 大数据第一季--Hadoop(day9)-徐培成-专题视频课程
  10. 本科生毕业论文(设计)撰写规范
  11. DMA方式的数据传送过程
  12. npm install没有node_文件,并且package.json文件缺失
  13. RCAN论文笔记:Image Super-Resolution Using Very Deep Residual Channel Attention Networks
  14. 2020上传透明头像易语言源码 附成品
  15. 某东满3000减2020真的有这个劵么
  16. [linux学习笔记] GCC环境安装问题
  17. 计算机网络-字符编码的由来(为什么会有乱码,ASCII、Unicode、GBK和UTF-8字符编码区别)
  18. 远程连接服务器工具,好用的远程登录服务器工具
  19. uim详解-5(卡上操作系统cos)
  20. 访问修饰符有哪些?及作用范围

热门文章

  1. pta 7-7 哪两个点之间的距离最近
  2. Pynq_Z2-hdmi输出图像、文字流程(VDMA)
  3. android studio 工作区间背景颜色设置眼睛保护色
  4. 三个漂亮的网页登录页面源码及素材——可用于前端初学者练习HTMLCSS
  5. Unity_导航系统
  6. 苹果cmsV10仿B站风模板源码
  7. FPS游戏中的同步算法
  8. 马哥python培训机构怎么样
  9. mac版+2018a+matlab,求助,mac系统 点击配置就报错,matlab版本2018a
  10. python 储蓄计划_储蓄--投资恒式为什么不意味着计划的储蓄恒等于计划的投资?...