【发布时间】:2013-05-10 04:01:13
【问题描述】:
我有一个搜索类型网页的中等复杂查询(到目前为止超过 1K LOC)。结果集需要按特定顺序排列。有 7 种不同的标准可用于订购此套装。我有两个 TABLE 变量,一个名为 @stageTable 和 @resultTable。我使用搜索参数运行动态查询并将结果放入@stageTable。然后,我为 7 个订单标准中的每一个处理 @stageTable,并将每个块放入 @resultTable。这按预期工作。
我被要求为这个怪物查询添加分页。我用 ROW_NUMBER() 路线去了 CTE。但是,我意识到这不尊重@resultTable 中的顺序。我遇到的问题是 ROW_NUMBER() OVER 子句使用了 ORDER BY,它不允许我保持我在@resultTable 中精心设计的顺序。我尝试了不同的方法,包括在 CTE 中添加 CASE 块。
此问题仅适用于用户第一次加载页面,以及在不使用搜索页面的任何条件的情况下滚动时。
关于如何处理这个问题的任何想法?
【问题讨论】:
-
选择默认排序。
标签: sql tsql pagination dynamic-sql