首页 > 数据库 > mysql教程 > 如何根据行号连接 SQL Server 表并控制顺序?

如何根据行号连接 SQL Server 表并控制顺序?

Susan Sarandon
发布: 2024-12-29 01:54:10
原创
596 人浏览过

How Can I Join SQL Server Tables Based on Row Number and Control Ordering?

在 SQL Server 中按行号连接表

在 SQL Server 2008 中,您可以使用 ROW_NUMBER( ) 功能。此函数根据可选的排序规范为表中的每一行分配唯一的序列号。

垂直排序连接行的查询:

连接表 A和 B 的行号并保持行的垂直顺序,使用以下查询:

SELECT A.val, B.val
FROM (
    SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num
    FROM A
) AS A
JOIN (
    SELECT val, ROW_NUMBER() OVER (ORDER BY val) AS row_num
    FROM B
) AS B
ON A.row_num = B.row_num
ORDER BY A.val, B.val;
登录后复制

水平排序连接行的查询:

如果要水平连接行而不排序,请将 ORDER BY 子句替换为 PARTITION经过子句:

SELECT A.val, B.val
FROM (
    SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num
    FROM A
) AS A
JOIN (
    SELECT val, ROW_NUMBER() OVER (PARTITION BY 1) AS row_num
    FROM B
) AS B
ON A.row_num = B.row_num;
登录后复制

示例:

使用提供的示例表 A 和 B,第一个查询将产生以下输出:

RowA Row1
RowB Row2
RowC Row3
RowD Row4
登录后复制

第二个查询将产生此输出,表示水平连接:

RowA Row4
RowB Row3
RowC Row2
RowD Row1
登录后复制

以上是如何根据行号连接 SQL Server 表并控制顺序?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板