我想结合2个查询来制作一个像这样的结果
Sandi | schemaid | value | Sandi | schemaid | value
100 | 2883 | 12324 | 200 | 2886 | 3456
120 | 2882 | 435 | 220 | 2887 | 555
130 | 2881 | 3456 | 230 | 2888 | 333
,查询是:
select y.Sandi , y.schemaid,y.value from tbl_schema y
where y.idx=1
select y.Sandi , y.schemaid,y.value from tbl_schema y
where y.idx=2
你能帮助我吗?
答案 0 :(得分:1)
由于您希望单独的idx
数据显示在列而不是行中,因此您可以使用include row_number()
并加入row_number上的单独查询,类似于:
select
q1.Sandi q1_Sandi,
q1.schemaid q1_schemaid,
q1.value q1_value,
q2.sandi q2_Sandi,
q2.schemaid q2_schema_id,
q2.value q2_value
from
(
select sandi, schemaid, value,
row_number() over (order by sandi) rn
from tbl_schema
where idx = 1
) q1
full outer join
(
select sandi, schemaid, value,
row_number() over (order by sandi) rn
from tbl_schema
where idx = 2
) q2
on q1.rn = q2.rn
答案 1 :(得分:0)
由于您在两个查询中使用相同的表(tbl_schema), for given ids (idx)
我认为您可以使用full outer join
,如下所示:
select y.Sandi, y.schemaid, y.value, x.Sandi_, x.schemaid_, x.value_
from tbl_schema y full outer join tbl_schema x
on y.idx + 1 = x.idx
where y.idx = 1 and x.idx = 2