我正在尝试从数据库中获取用户和部门的列表。我想按用户asc订购,在那里他们没有部门,然后用户asc的其余部分。下面是我当前的sql语句,它提供了一个用户asc列表,然后按deptCode asc排序:
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下面是我的结果示例:
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我希望它看起来像下面这样:
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可以实现我想要的功能吗?
发布于 2019-02-23 03:38:57
尝试如下所示
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 https://stackoverflow.com/questions/54833987
复制相似问题