sql – Oracle数据库:如何选择所有但首先返回某些列?

背景

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

我不知道我在查询中究竟要查找哪些数据,所以我想返回所有列,但我不想查找并查看我知道有意义的列.

假设一个表(表1),列A,B列,C列…… Z列 –

有没有办法基本上说“选择列C,列J,列F,列Q,然后是表1中的其余列”?

我试过的事情

保持伪sql,运行:

Select Column C, Column J, Column F, Table1.* from Table1

没有帮助,因为即使我不介意重复,oracle将它们视为模糊定义的列,因此返回错误.

最佳答案
除了指定每列之外,没有简单易行的方法.

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

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

仅仅为了演示,我也将Table1别名.您可以省略as关键字,但我觉得它使它更具可读性.

请注意,虽然这些额外的列对于Oracle来说并不困难,但它们确实会产生额外的流量.对于测试,此解决方案很好,但在生产代码中,我会选择只选择您需要的列,并且只选择一次.这只是一点额外的工作.毕竟,你有多少列? 🙂

转载注明原文:sql – Oracle数据库:如何选择所有但首先返回某些列? - 代码日志