Oracle SQL - 在不知道列名的情况下选择列

zig*_*ggy 1 sql oracle

如果我不知道列的名称,是否可以使用索引或列位置等选择第二列的值?

Select col(2) FROM (
    Select 'a', 'b',' c', 'd' from dual
)
Run Code Online (Sandbox Code Playgroud)

Jus*_*ave 5

可能吗?当然.您可以编写一个PL/SQL块,用于dbms_sql使用实际查询打开游标dual,描述结果,将变量绑定到您找到第二列的任何内容,从游标中获取,然后循环.这将是一个非常复杂的,通常相当痛苦的过程,但它可以做到.

SQL语言没有定义在静态SQL语句中执行此操作的方法,并且Oracle不提供允许此操作的扩展.但是,如果你知道你想要第二列但不知道该列代表什么,我会非常担心你试图解决的根本问题.在关系数据库中,这不是很有意义的东西.