gpt4 book ai didi

oracle - 如何获取oracle中不同表的前十行?

转载 作者:行者123 更新时间:2023-12-01 22:58:06 24 4
gpt4 key购买 nike

我有 4 个表,它们有 5 个公共(public)列。我想获取这些表的最新总体前十行,并检索它们。
我怎样才能做到这一点?我尝试使用简单的连接命令,但我得到的是 20 列,而不是 5 列!每个表都有自己的列名别名!但我想要的是,有一个包含所有前 10 名的 5 列表。

更新:

fetch FIRST 10 ROWS ONLY 

命令返回前 10 条记录,而不是最新的记录例如,当我运行以下命令时:

select * from tblTest order by ID FETCH First 3 ROWS Only;

我明白

1 Ali
2 Jacob
3 Chris

我真正需要的地方

18 Fatima
19 Mary
20 Catherina

我怎样才能实现这样的目标?

最佳答案

在 Oracle 12c 中,您可以使用 TOP-N 查询:

SQL> select * from(
2 (select deptno from emp
3 ORDER BY deptno
4 fetch FIRST 10 ROWS ONLY)
5 UNION all
6 (select deptno from emp
7 ORDER BY deptno
8 fetch FIRST 10 ROWS ONLY)
9 )
10 /

DEPTNO
----------
10
10
10
20
20
20
20
20
30
30
10

DEPTNO
----------
10
10
20
20
20
20
20
30
30

20 rows selected.

ROWNUM不同,您无需担心ORDER

更新关于订单中的最后一条记录

按顺序使用DESC

SQL> SELECT *
2 FROM(
3 (SELECT deptno FROM emp ORDER BY deptno DESC
4 FETCH FIRST 3 ROWS ONLY
5 )
6 UNION ALL
7 (SELECT deptno FROM emp ORDER BY deptno DESC
8 FETCH FIRST 3 ROWS ONLY
9 ) )
10 /

DEPTNO
----------
30
30
30
30
30
30

6 rows selected.

SQL>

关于oracle - 如何获取oracle中不同表的前十行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26582475/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com