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

时间:2018-03-04 17:34:47

标签: sql oracle11g plsqldeveloper

我正在尝试使用不同的场景来学习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

2 个答案:

答案 0 :(得分: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 :(得分:-1)

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

你的问题很模糊,可以多种解释。

你想要这个吗?

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

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