【问题标题】:Sort the table by c_criticality field in sql query在 sql 查询中按 c_criticality 字段对表进行排序
【发布时间】:2020-01-26 18:06:00
【问题描述】:

我在工作订单中有一个字段 wonum,C_criticality。

在 C_criticality 字段中有三个选项

  1. 严重
  2. 非关键
  3. 工具 4.null或空

在那个 C_criticality 字段中,一些列最终应该是 null(空)。 现在我必须按照关键性、非关键性、工具、空值(空值)的排序顺序获取输出。

CREATE TABLE 工单 ( 元整数, C_criticality varchar(255), );

插入工作订单 (wonum,C_criticality) 值(2,“关键”); 插入工作订单(wonum,C_criticality) 值(1,“非关键”); 插入工作订单(wonum,C_criticality) 值(15,“关键”); 插入工作订单(wonum,C_criticality) 值(12,“工具”); 插入工作订单(wonum,C_criticality) 值(21,“非关键”); 插入工作订单(wonum,C_criticality) 值 (11, '');

输出:-

 C_criticality           wonum
   critical                2
   critical                15
  non-critical             21
   tool                    12
   null                   11

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    我们可以尝试使用ISNULLFIELD 进行两层排序:

    SELECT *
    FROM yourTable
    ORDER BY
        ISNULL(C_criticality),   -- 0 for non NULL, 1 for NULL
        FIELD(C_criticality, 'criticality', 'noncritical', 'tool');
    

    FIELD 的调用将根据您提供的列表进行排序。

    【讨论】:

      【解决方案2】:

      这适用于所有 SQL 引擎,而不仅仅是 MySQL

      select *
      from workorder
      order by case when C_criticality = 'critical' then 1
                    when C_criticality = 'non-critical' then 2
                    when C_criticality = 'tools' then 3
                    else 4
               end
      

      【讨论】:

        【解决方案3】:

        由于您已标记 mysql,因此查询将类似于 ,

        SELECT * FROM workorder ORDER BY FIELD(C_criticality ,'critical','non-critical','tools','null');
        

        【讨论】:

        • 字符串 'null' 与 null 不同。你的答案不正确
        【解决方案4】:

        这取决于 DBMS。在一些有选项NULLS FIRSTNULLS LAST 在 MySQL 你可以发现这篇文章很有趣https://www.designcise.com/web/tutorial/how-to-order-null-values-first-or-last-in-mysql

        【讨论】:

          猜你喜欢
          • 2020-10-22
          • 1970-01-01
          • 1970-01-01
          • 2019-01-13
          • 1970-01-01
          • 1970-01-01
          • 2011-09-28
          • 2016-03-18
          • 1970-01-01
          相关资源
          最近更新 更多