sql的问题

image.png

数据库表如上图,现在要写一个select语句,结果显示9个字段,分别是1、一组周一

2、一组周二

3、一组周三

4、二组周一

5、二组周二

6、二组周三

7、三组周一

8、三组周二

9、三组周三

这个select语句要怎样写呢?

来无影 发布于 2021-12-29 14:29
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
zhaolLv4见习互助
发布于2021-12-29 14:33(编辑于 2021-12-29 14:35)

要粗暴点你可以分三段写再合并

SELECT * FROM (

SELECT 1 A,2 B,3 C FROM DUAL)aa,(SELECT 4 A,5 B,6 C FROM DUAL)bb,(SELECT 5 A,6 B,7 C FROM DUAL)cc

image.png

最佳回答
0
黄源Lv6中级互助
发布于2021-12-29 14:30(编辑于 2021-12-30 11:37)
  • 来无影 来无影(提问者) oracle
    2021-12-29 14:30 
  • 黄源 黄源 回复 来无影(提问者) oracle好像一样可以用
    2021-12-29 14:34 
  • 黄源 黄源 回复 来无影(提问者) 看下面那个
    2021-12-29 14:38 
最佳回答
0
shirokoLv6资深互助
发布于2021-12-29 14:34

SELECT 

SUM(CASE WHEN 小组='一组' THEN 周一 ELSE 0 END)  AS 一组周一,

SUM(CASE WHEN 小组='二组' THEN 周一 ELSE 0 END)  AS 二组周一,

SUM(CASE WHEN 小组='三组' THEN 周一 ELSE 0 END)  AS 三组周一,

SUM(CASE WHEN 小组='一组' THEN 周二 ELSE 0 END)  AS 一组周二,

SUM(CASE WHEN 小组='二组' THEN 周二 ELSE 0 END)  AS 二组周二,

SUM(CASE WHEN 小组='三组' THEN 周二 ELSE 0 END)  AS 三组周二,

SUM(CASE WHEN 小组='一组' THEN 周三 ELSE 0 END)  AS 一组周三,

SUM(CASE WHEN 小组='二组' THEN 周三 ELSE 0 END)  AS 二组周三,

SUM(CASE WHEN 小组='三组' THEN 周三 ELSE 0 END)  AS 三组周三

FROM 表

最佳回答
0
Z~/Lv6初级互助
发布于2021-12-29 15:09

逆透视:

我这是mysql:

这样写的 select  小组,周一,·周一· from 表

                union

            select  小组,周二,·周二· from 表

            union

            select  小组,周三,·周三· from 表

大体思路是这样。

  • 5关注人数
  • 450浏览人数
  • 最后回答于:2021-12-30 11:37
    请选择关闭问题的原因
    确定 取消
    返回顶部