编写SQL查询以实现以下结果

问题描述 投票:-7回答:2

我正在尝试使用不同的方案学习SQL。有人可以帮我实现以下结果,每列必须按升序排列。

表数据

col1 col2
10    3
20   2
30   1

输出应该是:

10,1 
20,2
30,3

另一个例子

表数据

col1 col2
10    10
20   9
30   7

输出应该是:

10,7 
20,9
30,10
sql oracle11g plsqldeveloper
2个回答
1
投票

我们很幸运地猜测,让我试试:

SQL> with test (col1, col2) as
  2    (select 10, 3 from dual union
  3     select 20, 2 from dual union
  4     select 30, 1 from dual
  5    ),
  6  inter as
  7    (select col1, row_number() over (order by col1) rn1,
  8            col2, row_number() over (order by col2) rn2
  9     from test
 10    )
 11  select i1.col1, i2.col2
 12  from inter i1 join inter i2 on i1.rn1 = i2.rn2
 13  order by i1.col1;

      COL1       COL2
---------- ----------
        10          1
        20          2
        30          3

SQL>

-1
投票

这解决了问题的原始版本。

您的问题非常模糊,并且可以进行多种解释。

你想要这个吗?

select col1, 4 - col2
from t
order by col1;

我猜你不会。您的问题需要更多细节才能发挥作用。

© www.soinside.com 2019 - 2024. All rights reserved.