打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
列转行,行转列

列转行
create table TEST_TB_GRADE
(
  ID        NUMBER(10) not null,
  USER_NAME VARCHAR2(20 CHAR),
  COURSE    VARCHAR2(20 CHAR),
  SCORE     FLOAT
);
Insert into TTT
   (USER_NAME, 语文, "数学", "英语", 政治, "地理", "历史", 生物)
 Values
   ('a1', 80, 85, 70, 76, 72, 83, 78);
Insert into TTT
   (USER_NAME, 语文, "数学", "英语", 政治, "地理", "历史", 生物)
 Values
   ('a2', 82, 81, 72, 81, 76, 83, 81);
COMMIT;

select user_name,decode(course,'语文',score,0) 语文,decode(course,'数学',score,0) 数学,decode(course,'英语',score,0) 英语,decode(course,'政治',score,0) 政治,
decode(course,'地理',score,0) 地理,decode(course,'历史',score,0) 历史,decode(course,'生物',score,0) 生物 from TEST_TB_GRADE

select user_name,sum(decode(course,'语文',score,0)) 语文,sum(decode(course,'数学',score,0)) 数学,sum(decode(course,'英语',score,0)) 英语,sum(decode(course,'政治',score,0)) 政治,
sum(decode(course,'地理',score,0)) 地理,sum(decode(course,'历史',score,0)) 历史,sum(decode(course,'生物',score,0)) 生物 from TEST_TB_GRADE group by user_name

行转列
CREATE TABLE TTT
(
  USER_NAME  VARCHAR2(20 CHAR),
  语文       NUMBER,
  "数学"     NUMBER,
  "英语"     NUMBER,
  政治       NUMBER,
  "地理"     NUMBER,
  "历史"     NUMBER,
  生物       NUMBER
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;

Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (1, 'a1', '语文', 80);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (2, 'a1', '数学', 85);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (3, 'a1', '英语', 70);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (4, 'a1', '政治', 76);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (5, 'a1', '历史', 83);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (6, 'a1', '地理', 72);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (7, 'a1', '生物', 78);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (8, 'a2', '语文', 82);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (9, 'a2', '数学', 81);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (10, 'a2', '英语', 72);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (11, 'a2', '政治', 81);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (12, 'a2', '历史', 83);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (13, 'a2', '地理', 76);
Insert into TEST_TB_GRADE
   (ID, USER_NAME, COURSE, SCORE)
 Values
   (14, 'a2', '生物', 81);
COMMIT;

/* Formatted on 2013/01/09 15:26 (Formatter Plus v4.8.8) */
SELECT user_name, '语文' course, 语文 as score
  FROM ttt
UNION
SELECT user_name, '数学' course, 数学 as score
  FROM ttt
UNION
SELECT user_name, '英语' course, 英语 as score
  FROM ttt
UNION
SELECT user_name, '政治' course, 政治 as score
  FROM ttt
UNION
SELECT user_name, '历史' course, 历史 as score
  FROM ttt
UNION
SELECT user_name, '生物' course, 生物 as score
  FROM ttt
UNION
SELECT user_name, '地理' course, 地理 as score
  FROM ttt
order by user_name,course

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【转】ORACLE的sign函数 和 DECODE函数
Oracle行转列与列转行
Oracle行列转换小结
Oracle中的行列转换
mysql-聚合函数
用ORACLE分析函数实现行列转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服