点关注不迷路

Max

SQL 先固定特殊的几行数据之外再按照某一字段排序方法(CASE 字段排序(CASE WHEN THEN)

查询用户表的数据,管理员用户始终在最前面,然后再按照CreateTime排序:

SELECT TOP
    50 * 
FROM
    [dbo].[User] 
WHERE
    ParentID = '**' 
ORDER BY
    ( CASE WHEN RoleName = '管理员' THEN 0 ELSE 1 END ),
    CreatedTime DESC

case when 的其他使用方法,给用户表分类,管理员的用户为A类,其他为B类:

SELECT TOP
    50 * ,(CASE WHEN RoleName ='管理员' THEN 'A' ELSE 'B' END) AS NN
FROM
    [dbo].[User] 
-- 或者
SELECT TOP
    50 * ,(CASE RoleName WHEN '管理员' THEN 'A' ELSE 'B' END) AS NN
FROM
    [dbo].[User] 

 

posted @ 2019-09-11 17:28  Max麦克斯  阅读(548)  评论(0编辑  收藏  举报