在oracle过程中重用选择列

时间:2013-06-12 20:50:17

标签: sql oracle

在我的包中,我在许多地方进行选择查询,这些地方具有不同的where条件但具有相同的列列表。如下。

Select a_1, a_2, a_3, ..... a_100 from table where <condition>

如果有一个新的a_101我想要包含在select中,我必须编辑所有这些选择查询被手动使用的地方,并且有很多选择就像这样。

我的问题是,有没有办法可以将所有列定义为一个变量并在select中使用它?这样的事情。

declare
  v_columns varchar2(500 byte);
begin
  v_columns := 'a_1, a_2, a_3....... a_100'
  select v_columns from table;
end;

这样,如果我想添加一个像a_101这样的新列,我只需在一个地方更改varialble声明。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

一种简单的方法是定义一个视图,然后从中选择*。

因此,如果您有包含1到30列的表格 但你经常选择偶数。

创建一个名为,其中选择Column2,column4,... Column30 From SomeTable

然后在你的其他查询中重用 从SomeTableEvenColumns中选择*,其中......