Oracle视图结果 - 列的奇怪顺序

时间:2014-01-31 11:30:12

标签: sql oracle

在使用oracle进行报告时,我遇到了一个奇怪的问题。

例如。

执行时

Select col1,col2,col3 
  from table

我在结果中获得了预期的列顺序 - col1, col2, col3

但是,当我创建一个视图并选择时,例如:

create view report_view as 
  Select col1,col2,col3 
    from table  

然后再做

select * 
  from report_view

结果中的列顺序为 - col1, col3, col2

任何人都可以解释为什么会这样吗? 为了您的信息,之前我的视图中只有col1col3,我最近在视图中添加了col2

2 个答案:

答案 0 :(得分:1)

发出以下查询并检查COLUMN_ID,了解在*声明中使用select时,您的列的显示顺序。

select TABLE_NAME, COLUMN_NAME, COLUMN_ID 
from ALL_TAB_COLUMNS
where TABLE_NAME = '[YOUR_VIEW_NAME_HERE]'

如果您坚持在视图中使用*,则必须删除/创建表并订购 你需要它们的列。

答案 1 :(得分:0)

您可能已将col2添加为视图中的最后一列。订单就像在您的创建声明中一样