欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【SQL】Oracle和MySQL数据库列值横排

程序员文章站 2024-03-20 08:54:40
...

一、问题

1.1、环境
电脑环境:Windows 10;
开发工具:Eclipse 4.6.3;
数据库环境:Oracle 11g;
JDK环境: Jdk1.8;
Maven环境:Maven3.5.0;
GIT版本:Version 2.48.02;
Docker版本:Server Version: 19.03.3
1.2、问题
如何将数据库中某各个列的值全部排成一排显示呢?打个比方,就好比一个教室,你让下图红色的那一排同学都出列,然后站到讲台前,每个人之间用逗号分隔;排成一排,跟黑板平行;
【SQL】Oracle和MySQL数据库列值横排

二、解答

2.1、MySQL数据库中;


create table user(
id int(10) PRIMARY key not null,
name varchar(100),
sex VARCHAR(10),
remark VARCHAR(100)
);

select * from user a;

insert into user values(1,'刘备','male','king');
insert into user values(2,'孙权','male','king');
insert into user values(3,'曹操','male','king');


select GROUP_CONCAT(a.name) from user a;

截图:
【SQL】Oracle和MySQL数据库列值横排

2.2、Oracle数据库中;

select wm_concat(a.name) from user a;

截图:
【SQL】Oracle和MySQL数据库列值横排

三、总结

其实,两个SQL除了函数,格式是一模一样,注意:

1、MySQL用的是GROUP_CONCAT;
2、Oracle用的是 WM_CONCAT,
3、Oracle查询后的结果是CLOB格式的;并且超过4000可能会报错;

欢迎关注我的
CSDN博客: https://blog.csdn.net/River_Continent
微信公众号:幕桥社区
【SQL】Oracle和MySQL数据库列值横排
知乎:张牧野, https://www.zhihu.com/people/zhang-mu-ye-37-76/activities
简书: https://www.jianshu.com/u/02c0096cbfd3