网站首页 > 技术文章 正文
列转行实验:
create table score2(
name varchar2(10),
Language number(3),
Math number(3),
English number(3)
);
insert into
score2 values('Zhang',80,67,95);
insert into score2 values('Li',79,84,62);
insert into score2(name,Language) values('Chen',88);
commit;
SELECT name,
'Language' subject,Language grade FROM score2
UNION ALL
SELECT name, 'Math' subject,Math grade FROM score2
UNION ALL
SELECT name, 'English' subject,English grade FROM score2
order by name;
多列转成一行 实验:
drop table t purge;
create table t(
dname varchar2(10),
ename varchar2(10)
);
insert into t values('sales','Scott');
insert into t values('sales','Jimes');
insert into t values('sales','Jack');
insert into t values('account','John');
insert into t values('account','Marry');
insert into t values('hr','Smith');
commit;
方法一:
select dname,WMSYS.WM_CONCAT(ename) ename from t group by dname;
方法二:
SELECT dname, SUBSTR(MAX (SYS_CONNECT_BY_PATH (ename, ',')), 2) NAME
FROM (
SELECT dname, ename, rn, LEAD (rn) OVER (PARTITION BY dname ORDER BY rn) rn1
FROM (SELECT dname, ename, ROW_NUMBER () OVER (ORDER BY ename) rn
FROM t)
)
START WITH rn1 IS NULL
CONNECT BY rn1 = PRIOR rn
GROUP BY dname;
猜你喜欢
- 2025-08-21 JDK 24:Java 24 中的新特性_jdk1.8的新特性stream
- 2025-08-21 第1章 初识Java_java从入门到实践
- 2025-08-21 新手必看:Rocky9.6 如何安装 JDK?多版本管理这样操作更高效
- 2025-08-21 Oracle列转行、多列转成一行_oracle列转行listagg
- 2025-08-21 国产化的戴尔存储 到底都长什么样?
- 2025-08-21 一次 G1 堆大小不均问题的排查及解决
- 2025-08-21 无人商店是真商业追捧还是伪用户需求?
- 2025-08-21 Navicat使用指南(一)_navicat products怎么用
- 2025-08-21 OpenAI与Oracle共建“星际之门”数据中心,将支持200万颗AI芯片
- 2025-08-21 告别魔法值:Java枚举如何拯救你的系统
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- oracle面试 (55)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)