SQL Server 使用 union all 和分页

2024-01-12

当我们使用 union all 从两个表获取结果时,如何应用分页。下面是这里的代码,我在已用于分页的“row_num”列中获取重复值。

;WITH resultSetCTE AS 
  (
SELECT
    ROW_NUMBER() OVER 
    (
        ORDER BY nr.is_read,nr.is_read_cashier,
    CASE @columnSortNameDirection WHEN 'Pin' THEN r.name END ASC,
    CASE @columnSortNameDirection WHEN 'PinDesc' THEN r.firstname END DESC  
    ) AS 'row_num',
    r.clave_receiver AS 'Pin',
    r.id_branch AS 'Id_Branch',
    r.id_receiver AS 'Id_receiver',  
    s.name_sender AS 'SenderFullName',
    r.name_receiver AS 'ReceiverFullName',
    r.id_flag_receiver AS  'Status',
    pas.option_name AS 'ApprovalStatus',
    r.mode_pay_receiver AS 'PaymentModeId'


    UNION ALL

    SELECT
    ROW_NUMBER() OVER 
    (
    ORDER BY nr.is_read,nr.is_read_cashier,
    CASE @columnSortNameDirection WHEN 'Pin' THEN r.name END ASC,
    CASE @columnSortNameDirection WHEN 'PinDesc' THEN r.firstname END DESC  
    ) AS 'row_num',
    r.clave_receiver AS 'Pin',
    r.id_branch AS 'Id_Branch',
    r.id_receiver AS 'Id_receiver',  
    s.name_sender AS 'SenderFullName',
    r.name_receiver AS 'ReceiverFullName',
    r.id_flag_receiver AS  'Status',
    pas.option_name AS 'ApprovalStatus',
    r.mode_pay_receiver AS 'PaymentModeId'

 )
    SELECT *,
 (SELECT COUNT(1) FROM resultSetCTE) AS 'RecordCount' 
 FROM resultSetCTE 
 WHERE row_num BETWEEN (1 - 1) * 15 + 1 AND 1 * 15  
 ORDER by IsRead,IsReadCashier

请使用 offset / fetch 代替。它可以解决你所有的问题。 更多信息请点击这里:https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx https://technet.microsoft.com/en-us/library/gg699618(v=sql.110).aspx

代码示例(请根据您的需要更新):

;WITH [resultSetCTE] AS 
 (
    SELECT
         [col] = [object_id] 
    FROM 
        [sys].[tables]

    UNION ALL

    SELECT
         [col] = [object_id] 
    FROM 
        [sys].[tables]
)
SELECT 
     * 
FROM 
    [resultSetCTE] 
ORDER BY 
     [col]
OFFSET 10 ROWS FETCH NEXT 20 ROWS ONLY;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 使用 union all 和分页 的相关文章

  • 从java运行sqlplus脚本的简单方法

    我有包含 sqlplus 特定脚本的 sql 文件 它包括 或 作为语句终止符 执行存储过程的 EXEC 等 我需要从 java jdbc 执行此脚本 而不需要 sqlplus sql ant任务 maven sql插件无法处理不同的终止符
  • 如何创建包含多列MD5的GENERATED列?

    我尝试在 PostgreSQL 14 3 中添加下表 CREATE TABLE client cache id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY request VARCHAR
  • 无法访问 Big Query 中类型为 ARRAY> 的字段

    我正在尝试在 BigQuery 上使用标准 SQL 方言 即不是旧版 SQL 运行查询 我的查询是 SELECT date hits referer FROM refresh ga sessions xxxxxx LIMIT 1000 但不
  • 在一个查询中对同一个表进行多个 COUNT SELECT

    对于某些人来说 这可能看起来很简单 但我就是无法理解 我一遍又一遍地从同一个表中进行多个 MS SQL SELECT 查询 SELECT count Page as tAEC FROM someTable WHERE Page LIKE A
  • 查询获取每条记录的最小日期[重复]

    这个问题在这里已经有答案了 我想获取表中每条记录的最小日期 该表具有多个带有一个主键的日期条目 看看我的桌子 CaseNo Entry date ABC 001 2 12 13 ABC 002 2 09 13 ABC 001 1 01 13
  • 将逗号分隔的主数据替换为列中的描述

    有 2 个 SQL Server 表 Products Name Status Code Product 1 1001 1003 Product 2 1001 1005 1006 Status Code Description 1001 S
  • 使用 SQL 扩展事件捕获链接服务器查询

    我尝试了许多事件类型 但无法实现链接服务器的日志记录 我可以找出所有其他数据库的事件 但对于链接服务器却没有运气 有什么建议 您可以使用OLEDB DATA READ跟踪对链接服务器的查询的事件 如果此事件的结果比您想要的更详细 您可能需要
  • pyspark.sql.functions.window 函数的“startTime”参数和 window.start 有何作用?

    示例如下 df spark createDataFrame 1 2017 05 15 23 12 26 2 5 1 2017 05 09 15 26 58 3 5 1 2017 05 18 15 26 58 3 6 2 2017 05 15
  • 如何将表移动到 T-SQL 中的架构中

    我想使用 T SQL 将表移动到特定架构中 我正在使用 SQL Server 2008 ALTER SCHEMA TargetSchema TRANSFER SourceSchema TableName 如果你想搬家all表到一个新的模式
  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • 将数据表传递到存储过程。有没有更好的办法?

    数据表可以以某种方式传递到 SQL Server 2005 或 2008 中吗 我知道标准方法似乎是将 XML 传递给 SP 并且可以通过某种方式轻松地将数据表转换为 XML 来实现这一点 将 NET 对象传递到 SP 怎么样 那可能吗 我
  • INNER/RIGHT/LEFT JOIN 怎么会比 FULL JOIN 慢 14 倍?

    我有一个查询 使用 FULL JOIN 需要 2 5 秒 使用 INNER RIGHT 或 LEFT JOIN 需要 40 秒 这是查询 子查询 完成两次 本身只需要 1 3 秒 SELECT T1 time T1 Total T1 rn
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • LEFT JOIN 比 INNER JOIN 快得多

    我有一张桌子 MainTable 有超过 600 000 条记录 它通过第二个表连接到自身 JoinTable 在父 子类型关系中 SELECT Child ID Parent ID FROM MainTable AS Child JOIN
  • 如何安全地使用保留的 SQL 名称?

    我正在使用 Cakephp 3 使用 sqlserver 作为数据源服务器 我确信我的数据库连接没有问题 因为 home ctp 提示我已连接到我的数据库 并且我还使用迁移插件来创建我的表 似乎使用它没有问题这些工具 但是在我烘焙 MVC
  • sql直接获取表行数的方法

    stackoverflow 的朋友们大家好 我的例行程序中有一个我认为不必要的步骤 假设您想从图库中获取所有图像 并限制每页一定数量的图像 db PDO object start pagenum x images per page limi
  • 索引在 NOT IN 或 <> 子句中起作用吗?

    我读过 至少 Oracle 数据库中的普通索引基本上是 B 树结构 因此存储处理适当根节点的记录 小于 根的记录被迭代地存储在树的左侧部分 而 大于 根的记录被存储在右侧部分 正是这种存储方法有助于通过树遍历实现更快的扫描 因为深度和广度都

随机推荐

  • 有没有办法在不调用 System.exit() 的情况下终止使用 java3d 的 java 应用程序?

    Java3D 启动多个系统线程 并且不会在它们上设置 isDaemon 标志 当我处置应用程序的 唯一 JFrame 时 它 不会终止 因为这些线程仍在运行 调用 System exit 似乎是终止应用程序的唯一方法 当然 或者从外部杀死它
  • 查找位数组中的第一个零

    我有一个位图 uint64 t bitmap 10000 跟踪系统中分配的资源 现在的问题是如何有效地找到该位图中的第一个未设置 零 位 我知道有ffsll unsigned long long 在 glibc 中查找第一个设置位 我认为这
  • 我正在使用带有加号按钮的底部选项卡,但是加号按钮在 android 中的本机反应中的一半区域中不可单击?

    我在 React Native 中使用 react navigation bottom tabs 我需要该区域上方的加号按钮 所以我能够实现它 但在 Android 中 加号图标的上方一半区域在 android 中不可单击 但在 IOS 中
  • 使用 ApplicationSettingsBase 存储通用 List

    我正在尝试使用 ApplicationSettingsBase 保存 List 但是即使填充了列表 它也仅输出以下内容
  • Foundation Small-12 色谱柱的更改顺序

    我有一个布局 左侧有图像 右侧有文本 适用于中型和大型视图 不过 我希望文本位于 small 12 上的图像之前 拉 推机制似乎不适用于 xxx 12 列 这些是我的 div div class large 4 medium 6 small
  • 如何在 Matlab 中将单个二维曲线绘制到颜色图上?

    我使用 Matlab 中现有的编译数据创建了一个平滑的颜色渐变二维等值线图 我将 x 轴 y 轴和 z 数据轮廓绘制为颜色图 我的目标是在颜色图上绘制一条二维曲线 代表单个 z 数据值 但我不知道如何做 有谁知道如何将 2 D 曲线绘制到
  • Dijkstra 的单源最短路径,带有权重为“w”的额外边

    在最近的一次采访中 我被要求实现单源最短路径算法 用于无向和正加权图 并稍作修改 即我们获得了权重为 w 的额外边缘 我们必须找到一条比 SSSP 算法计算的路径更短的路径 通过在两个尚未连接的节点之间连接权重 w 的额外边 这是一张图片
  • 在 Android 中使用 Google Maps API 从用户位置获取附近地点的结果

    这是第一次使用谷歌地图API和谷歌地点API 我正在做一个演示应用程序 它显示距离用户位置最近的医院列表 例如 以及到每家医院的路线 我能够使用下面的代码获取用户的位置 public class MainActivity extends A
  • 为什么对话框会删除其内容而不刷新?

    我遇到了一个非常奇怪的问题 窗口似乎正在擦除其内容 并且在擦除后没有重新绘制它 该对话框源自CDHtmlDialog 我认为这是问题的一部分 发生某种非确定性代码执行 导致某些代码在某些情况下先于其他代码执行 而在其他情况下则相反 涉及的消
  • android可扩展列表视图从firebase检索数据

    我该如何使用firebase检索我的数据Expandable listview my firebase节点是这样的 适配器类 public class CustomExpandableListViewAdapter extends Base
  • 等待进程结束

    您好 我必须编写必须打开一些系统属性的程序 例如 Process sound new Process sound StartInfo FileName mmsys cpl sound Start Place 1 Process device
  • numpy:沿新轴扩展数组?

    当然一定有办法做到这一点 我无法解决 我有一个 9 4 数组 我想沿第三轴重复它 4096 次 所以它变得简单 9 4 4096 9 4 数组中的每个值简单地重复 4096 次沿着新的轴线 如果我可疑的 3D 图有意义 对角线是 z 轴 4
  • 雅可比坐标系中的椭圆曲线加法

    我尝试在素数场上的椭圆曲线上添加两个点 将这些点从仿射 仿射坐标转换 但无法获得正确的结果 我正在测试的曲线有 a 0 任何人都可以看到出了什么问题吗 From Affine BigInteger X1 P x BigInteger Y1
  • SpringBoot应用程序发布并读取ActiveMQ主题

    我有两个应该从一个主题中读取的接收器 但只有一个随机接收者收到消息 就像它实际上是从队列而不是主题中读取的一样 我读了this https stackoverflow com questions 40144561 how to listen
  • 将图框与 PyCharm 结合使用

    我花了将近两天的时间在互联网上滚动 但无法解决这个问题 我正在尝试安装图形框架包 https spark packages org package graphframes graphframes 版本 0 2 0 spark2 0 s 2
  • Android 设备与本地主机服务器的连接[重复]

    这个问题在这里已经有答案了 我是安卓新手 我正在开发一个使用 MySQL 的应用程序 该应用程序在模拟器中运行良好 但现在我需要在 Android 设备中运行该应用程序 我能做些什么 正如第一条评论中所述 您应该检查文件 AndroidMa
  • jQuery:如何使用 live() 捕获按键

    我需要捕获某些动态输入上的选项卡按键事件 但使用按键事件的正常语法似乎无法捕获按键代码 input live keypress function e if e which 9 alert Tab pressed 当我在 firebug 中通
  • 在shell脚本中创建重复字符的字符串[重复]

    这个问题在这里已经有答案了 我需要生成一串点 字符 作为变量 即 在我的 Bash 脚本中 用于输入15我需要生成这个长度为 15 的字符串 我需要以不同的方式这样做 我尝试使用它作为基础 来自 Unix com http www unix
  • 如何限制EditText输入内容

    我正在尝试创建一个简单的计算器 它提供 EditText 供用户输入数字 允许输入的内容应该是 1 2 3 4 5 6 7 8 9 0 我知道可以使用以下代码来限制输入内容 android digits 1234567890 android
  • SQL Server 使用 union all 和分页

    当我们使用 union all 从两个表获取结果时 如何应用分页 下面是这里的代码 我在已用于分页的 row num 列中获取重复值 WITH resultSetCTE AS SELECT ROW NUMBER OVER ORDER BY