小编典典

Oracle数据库:如何选择全部,但首先返回某些列?

sql

背景

我有一个带有很多列的oracle数据库表,我在上面运行一些查询。

我不完全知道我要在查询中查找什么数据,因此我想返回所有列,但是我不想寻找我认为有意义的列。

问题

假设一个表(表1)包含 A列,B列,C列… Z列 -

有没有一种方法可以说“选择C列,J列,F列,Q列,然后选择表1中的其余列”?

我尝试过的事情

与伪sql保持一致,运行:

从表1中选择C列,J列,F列,Table1。*

这无济于事,因为即使我不介意重复项,oracle也会将它们视为模棱两可的定义列,因此会返回错误。


阅读 45

收藏
2021-04-22

共1个答案

小编典典

除了指定每一列之外,没有其他简便易行的方法。

但是,如果您不介意重复项, 并且 不关心列名,则可以为这些列取别名:

Select 
  ColumnC as ColumnC1, 
  ColumnJ as ColumnJ1, 
  ColumnF as ColumnF1,
  t.* 
from 
  Table1 as t

只是为了演示,我也对Table1进行了别名。您可以省略as关键字,但我认为它使可读性更高。

请注意,尽管这些额外的列对于Oracle来说根本不难查询,但它们确实会产生额外的流量。对于测试,此解决方案很好,但是在生产代码中,我将选择仅选择所需的列,并且仅选择一次。这只是一点点额外的工作。毕竟,您有几列?:)

2021-04-22