我目前有一个表(/网格)的数据,我可以页面,筛选和排序.在桌子上我也有一个内置的复选框列.现在,分页,过滤和排序都发生在SQL查询中.我希望能够做的是按复选框列中单击的项目排序.这会将所有检查的项目带到表格的前面.由于复选框本身都是客户端,我不能告诉SQL查询按不存在的列排序(可能我需要动态创建一个?)
本质上我认为会发生的是,复选框ID值将被发送到查询中,SQL查询本身会以某种方式知道按先排序,然后由指定的其他查询排序.
有点像,点击1,2和3:
SELECT*FROM Blah ORDER BY(SELECT ID FROM Blah WHERE ID IN(1,2,3)),AnotherColumnToSort
无论如何,这是计划,任何人都有任何关于如何实现这一目标的想法?
更新:Smack我在Oracle数据库而不是SQL Server,就像我想象的那样.
将BIT字段设置1为选中行时,0否则,首先按该字段排序:
SELECT *
FROM Blah
ORDER BY Checked DESC, AnotherColumnToSort
Run Code Online (Sandbox Code Playgroud)
如果您不想(或不能)存储是否在表中检查了行,请使用以下CASE子句派生它:
SELECT *
FROM Blah
ORDER BY
CASE
WHEN ID IN (1, 2, 3) THEN 1
ELSE 0
END DESC,
AnotherColumnToSort
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
798 次 |
| 最近记录: |