开发者社区> 问答> 正文

有没有办法对Oracle SQL查询的结果集中的数据进行非规范化

我的学生表如下:

SNO NAME SUBJECT MARKS

1 HARWI HINDI 75 2 SHWETA ENGLISH 80 3 RUDRA MATHS 90 4 HARWI MATHS 60 5 MANVI GK 89 6 RUDRA HINDI 98 7 SHWETA MATHS 67 我需要这样的输出:

1 HARWI HINDI 75 MATHS 60 2 MANVI GK 89 3 RUDRA HINDI 98 MATHS 90 4 SHWETA ENGLISH 80 MATHS 67 我不想使用串联运算符 ||

Oracle中是否有标准函数可以帮助我实现此结果集?

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 11:48:00 383 0
1 条回答
写回答
取消 提交回答
  • 您可以使用analytical function以下方法:

    select case when lag(name) over(partition by name order by marks) is null then dr end as sno, case when lag(name) over(partition by name order by marks) is null then name end as name, subject, marks from ( select t.*, dense_rank() over (order by t.name desc) as dr from students t -- dense rank is used to give numbers to the student - sno ) order by dr;

    2019-11-18 11:48:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载

相关镜像