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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写SQL查询以实现以下结果相关的知识,希望对你有一定的参考价值。

我正在尝试使用不同的方案学习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> 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>
另一答案

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

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

你想要这个吗?

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

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

以上是关于编写SQL查询以实现以下结果的主要内容,如果未能解决你的问题,请参考以下文章

优化 SQL 查询以减少执行时间

如何在 Web 服务 asp.net 中返回 linq to sql 查询结果?

编写以下 SQL 查询的更有效方法

SQL Server中具有不同列数的多个查询的联合结果

如何编写 SQL 查询以从表中提取 50% 的记录?

如何编写 SQL 查询以获取具有相同前缀的行