在 SQL Server 2008 中根据行号连接表
要在 SQL Server 2008 中对行号执行内部联接,可以使用 ROW_NUMBER()功能开始发挥作用。让我们考虑一下提供的示例:
表:
所需输出:
带有 Order By 子句的解决方案:
要根据行号连接表,请使用带有 ORDER BY 的 ROW_NUMBER() 函数子句:
select A.val,B.val from( SELECT val,row_number() over (order by val) as row_num FROM A)A join (SELECT val,row_number() over (order by val) as row_num FROM B)B on A.row_num=B.row_num ORDER BY A.val,B.val
输出:
此查询将产生所需的输出:
没有 Order By 子句的解决方案:
如果没有 order by 子句,则分配使用 ROW_NUMBER() 函数的行号仍将以任意顺序对值进行排序。输出中的行将以与原始表中相同的顺序出现:
select A.val,B.val from( SELECT val,row_number() over (order by (select null)) as row_num FROM A)A join (SELECT val,row_number() over (order by (select null)) as row_num FROM B)B on A.row_num=B.row_num ORDER BY A.val,B.val
输出:
此查询将再次生成所需的输出,但行的顺序可能不同:
以上是如何根据行号连接 SQL Server 2008 表?的详细内容。更多信息请关注PHP中文网其他相关文章!