当前位置: 首页 > news >正文

postgresql行列转换函数

postgresql行列转换函数

Pg提供相关行列转换函数string_agg和regexp_split_to_table。

1、行转列:string_agg

测试表
postgres=# select * from test.test_copy ;
eno | ename | job | mgr | hiredate | sal | comm | deptno 
------+--------+----------+------+---------------------+------+------+--------
7499 | ALLEN | SALESMAN | 7698 | 1991-02-20 00:00:00 | 1600 | 300 | 30
7566 | JONES | MANAGER | 7839 | 1991-04-02 00:00:00 | 2975 | | 20
7654 | MARTIN | SALESMAN | 7698 | 1991-09-28 00:00:00 | 1250 | 1400 | 30
7498 | JASON | ENGINEER | 7724 | 1990-02-20 00:00:00 | 1600 | 300 | 10
(4 rows)
将部门为30的员工的姓名合并起来
postgres=# Select deptno,string_agg(ename,',') from test.test_copy group by deptno;
deptno | string_agg 
--------+--------------
30 | ALLEN,MARTIN
10 | JASON
20 | JONES
(3 rows)

2、列转行:regexp_split_to_table

postgres=# select * from test.test_str;
no | name 
----+------------
1 | a,b,c,d
2 | Jason Xian
(2 rows)
将列信息转换成行
postgres=# select regexp_split_to_table(name,',') from test.test_str where no=1;
regexp_split_to_table 
-----------------------
a
b
c
d
(4 rows)
postgres=# select regexp_split_to_table(name,' ') from test.test_str where no=2;
regexp_split_to_table 
-----------------------
Jason
Xian
(2 rows)
postgres=# select regexp_split_to_table('hello world', '\s+');
regexp_split_to_table 
-----------------------
hello
world
(2 rows)

相关文章:

  • SQL中IF和CASE语句
  • Python Day3
  • [20190416]完善shared latch测试脚本2.txt
  • Windows下如何更新 node.js
  • 美团数据调优指北【转载】
  • 如何给列表降维?sum()函数的妙用
  • 好程序员分享JQuery.get提交页面不跳转的解决方法
  • QT 栅格布局
  • 如何根据业务封装自己的功能组件
  • 心理学解析一见钟情的感觉
  • 深入理解nvme hardware queue pair
  • 家具建材行业电商平台解决方案
  • SAP soamanager发布的Webservice服务,调用时出现http500报错
  • 日常英语---九、冒险岛link技能导读
  • 日常英语---四、vis.js是什么
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 0x05 Python数据分析,Anaconda八斩刀
  • CSS居中完全指南——构建CSS居中决策树
  • echarts的各种常用效果展示
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript的使用你知道几种?(上)
  • JWT究竟是什么呢?
  • tweak 支持第三方库
  • Vim 折腾记
  • 从0实现一个tiny react(三)生命周期
  • 浮动相关
  • 关于Flux,Vuex,Redux的思考
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 盘点那些不知名却常用的 Git 操作
  • 使用Gradle第一次构建Java程序
  • 算法之不定期更新(一)(2018-04-12)
  • 与 ConTeXt MkIV 官方文档的接驳
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 国内开源镜像站点
  • ​马来语翻译中文去哪比较好?
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #pragma 指令
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (七)c52学习之旅-中断
  • (三)c52学习之旅-点亮LED灯
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (十八)SpringBoot之发送QQ邮件
  • (算法设计与分析)第一章算法概述-习题
  • (学习日记)2024.02.29:UCOSIII第二节
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .net6+aspose.words导出word并转pdf
  • .Net中间语言BeforeFieldInit
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @Conditional注解详解
  • [ Linux Audio 篇 ] 音频开发入门基础知识