当前位置: 首页 > 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)

相关文章:

  • 怎么获取红米6 Pro的root权限
  • AAC架构系列一(初识)
  • Jboot 2.0.7 发布,分布式事务新增对 HikariCP、C3P0 等连接池的支持
  • mybatis特殊字符转义
  • 软件测试2019:第三次作业
  • JavaEE (13种技术都是什么?)
  • 一个SQL无法kill掉的案例
  • Delphi中Move、CopyMemory操作
  • 零基础如何高效的学习java开发?
  • 基于 Django2 实现邮箱注册登录功能
  • klock 分布式锁重大更新
  • python 基础问题,包括语法等
  • Spark- SparkSQL中 Row.getLong 出现NullPointerException错误的处理方法
  • 原子性问题的解决思路--锁
  • Day1 BFS算法的学习和训练
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【Amaple教程】5. 插件
  • angular组件开发
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • JAVA_NIO系列——Channel和Buffer详解
  • JavaScript新鲜事·第5期
  • SpriteKit 技巧之添加背景图片
  • uni-app项目数字滚动
  • 坑!为什么View.startAnimation不起作用?
  • 前端工程化(Gulp、Webpack)-webpack
  • 原生 js 实现移动端 Touch 滑动反弹
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • ionic异常记录
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 国内开源镜像站点
  • ​水经微图Web1.5.0版即将上线
  • #{}和${}的区别?
  • #pragma multi_compile #pragma shader_feature
  • (003)SlickEdit Unity的补全
  • (04)odoo视图操作
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (差分)胡桃爱原石
  • (第二周)效能测试
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (转) Face-Resources
  • (转)LINQ之路
  • *上位机的定义
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET Core实战项目之CMS 第一章 入门篇-开篇及总体规划
  • .NET Framework杂记
  • @RequestMapping处理请求异常
  • @RunWith注解作用
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [BJDCTF2020]The mystery of ip1
  • [bzoj 3534][Sdoi2014] 重建
  • [bzoj1324]Exca王者之剑_最小割
  • [C#] 基于 yield 语句的迭代器逻辑懒执行