首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle查询与group和排序顺序有关的键

Oracle查询与group和排序顺序有关的键
EN

Stack Overflow用户
提问于 2013-10-31 00:29:12
回答 1查看 202关注 0票数 0

我在oracle数据库中有一些值,其键值对存储如下

代码语言:javascript
复制
KEY     VALUE      SortOrder   REGN NO
---------------------------------------
KEY1    VALUE1      1          123
KEY2    VALUE2      2          123
KEY1    VALUE3      3          123
KEY1    VALUE4      1          456
KEY1    VALUE5      3          456
KEY1    VALUE6      2          456
KEY2    VALUE7      1          678
KEY2    VALUE8      3          678
Key 2   VALUE9      2          678

对于每个键,我都有针对REGN的排序顺序。每个REGN最多允许三个条目,但它可以是任意键。我需要通过对特定键的REGN进行分组来获得结果,并且应该按排序顺序排序。对于KEY1结果,如下所示

代码语言:javascript
复制
REG NO    OPTION1     OPTION 2    OPTION 3
------------------------------------------
123       VALUE 1     VALUE 3   
456       VALUE 4     VALUE 6     VALUE 5

如何使用oracle语句获取它?

EN

回答 1

Stack Overflow用户

发布于 2013-10-31 00:36:24

这个解决方案)

代码语言:javascript
复制
SELECT REGNO, KEY, MAX(CASE WHEN SortOrder = 1 THEN VALUE ELSE '' END) AS OPTION1,
    MAX(CASE WHEN SortOrder = 2 THEN VALUE ELSE '' END) AS OPTION2,
    MAX(CASE WHEN SortOrder = 3 THEN VALUE ELSE '' END) AS OPTION3
    FROM SomeTable
    GROUP BY REGNO, KEY




  SELECT REGNO, KEY, MAX(CASE WHEN num= 1 THEN VALUE ELSE '' END) AS OPTION1,
            MAX(CASE WHEN num= 2 THEN VALUE ELSE '' END) AS OPTION2,
            MAX(CASE WHEN num= 3 THEN VALUE ELSE '' END) AS OPTION3
    FROM
    (
    SELECT ROW_NUMBER() OVER(PARTITION BY REGNO, KEY ORDER BY SortOrder) AS num, * FROM SomeTable
    ) T GROUP BY REGNO, KEY
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19696357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档