表列的SQL多个orderby

时间:2017-09-20 14:18:19

标签: mysql

在我关于SQL的一个表中我尝试使用优先级orderBy来为输出排序数据,例如

select * from user ORDER BY 
     (CASE 
        WHEN role = 1  THEN ???
      END),
    CASE 
        WHEN permission = 2  THEN ???
        WHEN access = 3 ??
    END) 

我只是了解此命令以获得结果并优先级orderBy,如何修复此命令以获得正确的结果?

首先按角色排序,按权限排序第二次,按访问获得第三次排序

select * from user ORDER BY 
->(if role = 1 )
->(or permission = 2 )
->(or access = 3 )

1 个答案:

答案 0 :(得分:1)

如果您有一个示例结果集,那么问题会更有意义。 不知道这是否是你想要的

   ORDER BY role, permission, access

示例2:

   ORDER BY 
   CASE WHEN role= 1 THEN role END ASC/DESC,
   CASE WHEN permission = 2 THEN permission END ASC/DESC,
   CASE WHEN access = 3 THEN access END ASC/DESC

问题不是很清楚