0

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

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

如果我想在选择中包含一个新的 a_101,我必须手动编辑所有使用此选择查询的位置,并且有很多这样的选择。

我的问题是,有没有一种方法可以将所有列定义为一个变量并在选择中使用它?像这样的东西。

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 这样的新列,我只需在一个地方进行更改,即变量声明。

任何帮助,将不胜感激。

4

1 回答 1

2

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

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

创建一个名为的视图,该视图确实从 SomeTable 中选择 Column2、column4、...Column30

然后在您的其他查询中重用 Select * from SomeTableEvenColumns where ....

于 2013-06-12T20:53:16.407 回答