首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle -先按特定值排序,然后按其他值排序

Oracle -先按特定值排序,然后按其他值排序
EN

Stack Overflow用户
提问于 2016-08-30 18:02:38
回答 2查看 12.6K关注 0票数 5

我有一个Oracle11g表,其中有一列表示许多项的状态。有没有办法进行select,首先对三个特定的标志进行排序,然后按字母顺序排列其余的标志?

类似于

代码语言:javascript
复制
SELECT ITEM, STATUS FROM FOO ORDER BY STATUS ('I', 'U', 'P') ASC

它将列出所有状态为I的项目,然后是U,然后是P,最后是剩余的项目。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-30 18:07:41

这适用于所有数据库引擎

代码语言:javascript
复制
SELECT ITEM, STATUS 
FROM FOO 
ORDER BY case when STATUS = 'I' then 1
              when STATUS = 'U' then 2
              when STATUS = 'P' then 3
              else 4
         end,
         status
票数 19
EN

Stack Overflow用户

发布于 2016-08-30 18:06:14

试试这个:

为me..Check演示工作:

代码语言:javascript
复制
create table FOO (ITEM varchar2(10), STATUS varchar2(10)) ;

SELECT ITEM, STATUS 
    FROM FOO 
    ORDER BY DECODE (STATUS,'I',1, 'U',2, 'P',3,4) ;

结果:

代码语言:javascript
复制
SQL> SELECT ITEM, STATUS 
        FROM FOO 
        ORDER BY DECODE (STATUS,'I',1, 'U',2, 'P',3,4) ;
  2    3  
no rows selected

你是如何使用它的?

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39224471

复制
相关文章

相似问题

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