当前位置:  开发笔记 > 后端 > 正文

如何对SQL结果进行排序,但保留一些特殊结果呢?

如何解决《如何对SQL结果进行排序,但保留一些特殊结果呢?》经验,为你挑选了3个好方法。

我有一个SQL查询的结果,我想按字母顺序排序,但有一些常用的结果,我想浮到顶部.有没有一种简单的方法可以通过巧妙的SQL或一旦我填充它来对(asp.net)数据表进行排序来实现这一点?

我知道我希望保持最佳状态的数据库ID,如果这有所不同的话.



1> BenAlabaster..:

最简单的方法是按照将其他字段设置为其他字段的方式排序...

假设您有权修改表格的结构(您可能没有),然后添加"粘性"字段,允许您将项目标记为粘性,并根据需要将订单附加到粘性项目.在常规排序之前按此字段排序.

至于在没有定义该字段的情况下执行此操作的技巧 - 您需要按照您可以在这些字段中找到的某些数据进行排序,或者将ID保存在单独的表中 - 或查询中的列表...不是最理想的方式,但它会奏效.



2> EndangeredMa..:

您可以定义一个自定义列,设置可以排序的"特殊标志".然后,按字母顺序排序.

SELECT ...
    IsSpecial = CASE WHEN RowID IN (100,534,203) THEN 1 ELSE 0 END
FROM ...
ORDER BY IsSpecial DESC, RowID ASC, Name ASC



3> Charles Bret..:

只是通过一个case语句来命令,它使用你指定的任何规则......

  ...
   Order By Case 
      When [My Rules that designate special] 
       Then 0 Else 1 End

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有