我有一个带有很多列的oracle数据库表,我在上面运行一些查询。
我不完全知道我要在查询中查找什么数据,因此我想返回所有列,但是我不想寻找我认为有意义的列。
假设一个表(表1)包含 A列,B列,C列… Z列 -
有没有一种方法可以说“选择C列,J列,F列,Q列,然后选择表1中的其余列”?
与伪sql保持一致,运行:
从表1中选择C列,J列,F列,Table1。*
这无济于事,因为即使我不介意重复项,oracle也会将它们视为模棱两可的定义列,因此会返回错误。
除了指定每一列之外,没有其他简便易行的方法。
但是,如果您不介意重复项, 并且 不关心列名,则可以为这些列取别名:
Select ColumnC as ColumnC1, ColumnJ as ColumnJ1, ColumnF as ColumnF1, t.* from Table1 as t
只是为了演示,我也对Table1进行了别名。您可以省略as关键字,但我认为它使可读性更高。
as
请注意,尽管这些额外的列对于Oracle来说根本不难查询,但它们确实会产生额外的流量。对于测试,此解决方案很好,但是在生产代码中,我将选择仅选择所需的列,并且仅选择一次。这只是一点点额外的工作。毕竟,您有几列?:)