sql - 表的联合列
问题描述
我有表A:
Id
________
-1
-2
-3
我有表B:
Id
_________
110
111
112
如何获得包含表 A 和表 B 中的列的结果表的最佳实践:
IdA | IdB
__________
-1 | 110
-2 | 111
-3 | 112
解决方案
一种方法是使用几个 CTE 和ROW_NUMBER
. 我假设这些值应该分别按降序和升序连接。这意味着如果您要分别添加值-4
and109
则-1
和109
将被加入,而不是-1
and 110
(和-4
with 112
)。
WITH A AS(
SELECT Id,
ROW_NUMBER() OVER (ORDER BY Id DESC) AS I
FROM TableA),
B AS(
SELECT ID
ROW_NUMBER() OVER (ORDER BY ID ASC) AS I
FROM TableB)
SELECT A.ID AS IdA,
B.ID AS IdB
FROM A
JOIN B ON A.I = B.I;
推荐阅读
- javascript - 无法向右水平滚动更多(仅在 iOS 中)
- android - 如何阻止 Chrome 后台更新杀死我的应用程序?
- buefy - 在 Buefy 表上添加 id 属性
- angular - 访问地图
来自 JSON 的 DTO 中的值? - ios - 如何在firebase auth(反应本机应用程序)中为QA env禁用CAPTCHA?
- java - JFrame 不可见
- java - 是否有此定义 Java Guava 集合 Map 的并发版本
- javascript - jQuery 检测 DOM 变化
- wordpress - wordpress 和 CSP
- mysql - mysql 1290:已设置“secure_file_priv”并使用绝对路径