Oracle怎么嵌套查询

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle怎么嵌套查询相关的知识,希望对你有一定的参考价值。

表a内容: 表table内容:
1 r 1 c
2 table 2 t
3 user
其中a表的table字段就是表table
有没有什么办法用a直接查处table 里的内容

参考技术A SQL> select substr(sys_connect_by_path(name,'->'),2) from dd start with pid is null connect by pid=prior id;

SUBSTR(SYS_CONNECT_BY_PATH(NAME,'->'),2)
----------------------------------------------------------------------------------------------------
>华南
>华南->广东
>华南->广东->广州
>华南->广东->深圳
>华南->广西
>华东
>华东->江苏
>华东->江苏->南京

已选择8行。追问

我是想通过表a的table字段来找表table里的内容;我想知道一条语句能不能写完

怎么查询oracle中最后几条的数据?

顺便解释下谢谢!

参考技术A 说一个可能的办法,不过最好不要用,估计能慢到吓人。
嵌套查询,select * from( select * from(select rownum num_row,其他字段 from a)b order by num_row desc) where rownum<=n;
首先标识rownum列,然后取一个别名(必须),因为rownum必须是从1开始,所以必须取一个别名,然后按照倒叙排列,排列后最后几条就在前面了,你想查询几就再写一个rownum<=几就行了。
上面的查法很麻烦,应该还有比较简单的查法,也想到了另一种可能,不过需要测试,这里没有测试环境,所以剩下的你自己慢慢考虑吧,我估计大概的意思应该就是这样的。利用rownum。本回答被提问者和网友采纳
参考技术B select * from table where rowid = (select max(rowid) from table)
适合新表,如果有修改过的表(增删改)有可能结果不是正确的.

另外一般来说表中都会有个字段(插入时间,或者修改时间)
你也可以根据那个来查询最大的日期.

如果你的表中没有类似的字段,其他办法就很麻烦,不是三言两语能够说明的.操作起来也很复杂.
我这里就不说了.
请采纳。追问

把rowid换成日期,在取5条怎么取啊
rownum<=5 ? 是不是?

以上是关于Oracle怎么嵌套查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle嵌套where查询

oracle 中 select中嵌套select语法,该怎么处理

oracle如何查询嵌套表的分项

oracle 嵌套查询 子查询 自连接 等值连接条件

Oracle三层嵌套查询

SQL 语句Oracle :select嵌套: