SQL Server 中行号的内联接
目标: 使用两个表的行执行内联接
场景:
考虑两个表 A 和 B,其中包含以下数据:
Table A | Table B |
---|---|
RowA | Row4 |
RowB | Row3 |
RowC | Row2 |
RowD | Row1 |
目标是加入基于行号的表并检索以下内容输出:
Table A | Table B |
---|---|
RowA | Row1 |
RowB | Row2 |
RowC | Row3 |
RowD | Row4 |
解决方案:
要对行号执行内连接,请使用 ROW_NUMBER() 函数,如下所示:
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;
此查询为每个输入表(A 和 B)创建一个临时表,并根据 val 列为每行分配行号。然后使用 row_num 列连接表,并按两个表中的 val 列对结果进行排序。
其他注意事项:
SQL Fiddle 演示:
[SQL Fiddle 演示](https://www.sqlfiddle.com/#!18/69540/2 )
以上是如何根据行号内连接两个SQL Server表?的详细内容。更多信息请关注PHP中文网其他相关文章!