Sla*_*aSt 1 sql oracle select join
给出两个表(count(Table1) <= count(Table2)):
表格1:
record-1
record-2
...
record-k
Run Code Online (Sandbox Code Playgroud)
表2:
promo-1
promo-2
...
promo-j
Run Code Online (Sandbox Code Playgroud)
是否可以将它们加入下表?即在Table1某个条目中分配每个条目Table2,但是没有两个条目Table1对应于相同的条目Table2.
结果:
record-1 promo-i1
record-2 promo-i2
...
record-n promo-in
Run Code Online (Sandbox Code Playgroud)
您可以使用rownum伪列创建假密钥,并根据以下内容进行连接:
SELECT t1.col1, t2.col2
FROM (SELECT col1, ROWNUM AS rn
FROM table1
ORDER BY col1) t1
JOIN (SELECT col2, ROWNUM AS rn
FROM table2
ORDER BY col2) t2 ON t1.rn = t2.rn
Run Code Online (Sandbox Code Playgroud)
编辑:
稍微"笨拙",但更友好的ANSI方法是使用ROW_NUMBER()窗口功能:
SELECT t1.col1, t2.col2
FROM (SELECT col1, ROW_NUMBER() OVER (ORDER BY col1) AS rn
FROM table1) t1
JOIN (SELECT col2, ROW_NUMBER() OVER (ORDER BY col2) AS rn
FROM table2) t2 ON t1.rn = t2.rn
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
701 次 |
| 最近记录: |