在使用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
。
任何人都可以解释为什么会这样吗?
为了您的信息,之前我的视图中只有col1
和col3
,我最近在视图中添加了col2
。
答案 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添加为视图中的最后一列。订单就像在您的创建声明中一样