Oracle sql 把hjmc等于实施方案的,排序在第一,并且把sxh等于-1的排在最后

2023-12-20 19:56:42

要将hjmc等于"实施方案"的行排序在第一,并将sxh等于-1的行排在最后,你可以使用ORDER BY子句来实现。假设你的数据表名为your_table_name,你可以使用以下SQL查询:

SELECT *
FROM your_table_name
ORDER BY 
    CASE 
        WHEN hjmc = '实施方案' THEN 0
        ELSE 1
    END,
    CASE 
        WHEN sxh = -1 THEN 1
        ELSE 0
    END,
    hjmc;

这里的逻辑是:

  1. 使用第一个CASE语句为hjmc等于"实施方案"的行赋予一个优先级(这里是0),而对于其他的行赋予一个次优级(这里是1)。
  2. 使用第二个CASE语句为sxh等于-1的行赋予一个最高优先级(这里是1),而对于其他的行赋予一个次优级(这里是0)。
  3. 使用ORDER BY子句按照这些优先级对数据进行排序。首先,按照第一个CASE语句的排序,然后按照第二个CASE语句的排序,最后按照hjmc的值进行排序。
  4. 由于最高优先级是1,所以"实施方案"行会出现在所有其他行之前,而sxh等于-1的行会出现在所有其他行的最后。

文章来源:https://blog.csdn.net/Rockandrollman/article/details/135110854
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。