繁体   English   中英

SQL 服务器查询多列排序

[英]SQL Server query sorting on multiple columns

我在查询中按两列排序,一列是销售代表的姓名,另一列是他们的任务状态。 例如。 状态列应排序(待定、已发送、已发出以供签名)。 我将根据这个查询做一个报告。 状态报告排序不是按升序或降序排列。 有什么方法可以自定义对这一列进行排序吗?

在此处输入图像描述

你可以尝试这样的事情:

SELECT SalesRepName, [Status]
FROM #YourTable
ORDER BY SalesRepName
    , CASE [Status]
        WHEN 'Pending'           THEN 1
        WHEN 'Sent'              THEN 2
        WHEN 'Out for signature' THEN 3
        ELSE 4
      END

解释:

您想要按字符串列排序,但不想按字母顺序排序。

一种方法是为每个可能的字符串分配一个数字值作为排序依据。

对此的一个警告是,如果这些 Status 标签发生变化,那么您的CASE可能会像您最初预期的那样突然停止工作。 如果可以改为引用某种 StatusID,那会更好。

或者,如果您的企业有一个共同的工作流程,其中一个项目总是一个接一个地发生。 您可以考虑在存储状态的表中添加某种“ParentStatusID”或“OrderID”。 通过这种方式,排序会继承到您的查询中,未来的状态将自动以正确的顺序显示在您的报告中。

我在查询中按两列排序,一列是销售代表的姓名,另一列是他们的任务状态。 例如。 状态列应进行排序(待处理、已发送、签出)。 我将根据此查询进行报告。 状态报告排序不是升序或降序。 有没有办法自定义排序这个列?

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM