我有两个单独的表,例如
tab.1
col.1
1
2
3
tab.2
col.1 col.2
56 77
66 99
88 09
我希望结果获得第一个tab.1值和第二个tab.2 col.1值,例如
1 56
2 66
3 88
所有成员放第二个标签。第一个标签后的值。值,但我需要像上述样式一样。
答案 0 :(得分:2)
如果结果取决于2列值的数字顺序,则使用row_number()
窗口函数:
select t1.col1 tab1col1, t2.col1 tab2col1
from (select col1, row_number() over (order by col1) rn from tab1) t1
inner join (select col1, row_number() over (order by col1) rn from tab2) t2
on t1.rn = t2.rn
请参见demo。
如果col1
中tab1
的值实际上是:1、2、3,...,则row_number()
不需要tab1
:
select t1.col1 tab1col1, t2.col1 tab2col1
from tab1 t1
inner join (select col1, row_number() over (order by col1) rn from tab2) t2
on t1.col1 = t2.rn
请参见demo。
结果:
| tab1col1 | tab2col1 |
| -------- | -------- |
| 1 | 56 |
| 2 | 66 |
| 3 | 88 |