我有一个SQL查询的结果,我想按字母顺序排序,但有一些常用的结果,我想浮到顶部.有没有一种简单的方法可以通过巧妙的SQL或一旦我填充它来对(asp.net)数据表进行排序来实现这一点?
我知道我希望保持最佳状态的数据库ID,如果这有所不同的话.
最简单的方法是按照将其他字段设置为其他字段的方式排序...
假设您有权修改表格的结构(您可能没有),然后添加"粘性"字段,允许您将项目标记为粘性,并根据需要将订单附加到粘性项目.在常规排序之前按此字段排序.
至于在没有定义该字段的情况下执行此操作的技巧 - 您需要按照您可以在这些字段中找到的某些数据进行排序,或者将ID保存在单独的表中 - 或查询中的列表...不是最理想的方式,但它会奏效.
您可以定义一个自定义列,设置可以排序的"特殊标志".然后,按字母顺序排序.
SELECT ... IsSpecial = CASE WHEN RowID IN (100,534,203) THEN 1 ELSE 0 END FROM ... ORDER BY IsSpecial DESC, RowID ASC, Name ASC
只是通过一个case语句来命令,它使用你指定的任何规则......
... Order By Case When [My Rules that designate special] Then 0 Else 1 End