首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Oracle conditional order by

Oracle conditional order by
EN

Stack Overflow用户
提问于 2019-02-23 03:34:53
回答 1查看 258关注 0票数 1

我正在尝试从数据库中获取用户和部门的列表。我想按用户asc订购,在那里他们没有部门,然后用户asc的其余部分。下面是我当前的sql语句,它提供了一个用户asc列表,然后按deptCode asc排序:

代码语言:javascript
运行
复制
SELECT
  userDepts.ID,
  users.ID AS USER_ID,                            
  userDepts.DEPT_CODE,
  users.USERNAME                                     
  FROM SCRIPTS.TB_FRSCHL_USER_DEPTS userDepts
  FULL OUTER JOIN SCRIPTS.TB_FRSCHL_USERS users ON (users.ID = userDepts.USER_ID)
  ORDER BY users.USERNAME ASC, DEPT_CODE ASC

下面是我的结果示例:

代码语言:javascript
运行
复制
ID   | USER_ID | DEPT_CODE | USERNAME
null |   1234  |    null   |      adam.doe
null |   2341  |    null   |      ana.jane
9876 |   3412  |    cpsc   |      john.doe
4567 |   4987  |    crim   |      mike.smith
null |   4123  |    null   |      test.user

我希望它看起来像下面这样:

代码语言:javascript
运行
复制
 ID   | USER_ID | DEPT_CODE | USERNAME
null |   1234  |    null   |      adam.doe
null |   2341  |    null   |      ana.jane
null |   4123  |    null   |      test.user
9876 |   3412  |    cpsc   |      john.doe
4567 |   4987  |    crim   |      mike.smith

我试过在order by中使用CASE,但到目前为止还没有成功。使用sql可以实现我想要的功能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-23 03:38:57

尝试如下所示

代码语言:javascript
运行
复制
SELECT
  userDepts.ID,
  users.ID AS USER_ID,                            
  userDepts.DEPT_CODE,
  users.USERNAME                                     
  FROM SCRIPTS.TB_FRSCHL_USER_DEPTS userDepts
  FULL OUTER JOIN SCRIPTS.TB_FRSCHL_USERS users ON (users.ID = userDepts.USER_ID)
  ORDER BY case when userDepts.ID is null then 1 else 2 end , users.ID  
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54833987

复制
相关文章

相似问题

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