动态SQL选择变量语句

时间:2014-01-08 16:29:21

标签: sql oracle

首次使用初学者sql知识的海报(所以对我来说很容易)

我目前有一个SQL语句,它从表中提取月度数据,我希望根据上个月进行动态提取和滚动。

例如 - 假设日期是2013年12月1日

Select Month10_Values
,Month11_Values
,Month12_Values
from test_table;

我想用动态变量替换字段的数字,如下所示:

Select Month[curr_month-2]_Values
,Month[curr_month-1]_Values
,Month[curr_month]_Values
from test_table;

[curr_month]预先确定的地方(在这种情况下12基于假设日期为2013年12月1日)

对此的任何帮助都将非常感激,希望我已经有所了解。

由于

1 个答案:

答案 0 :(得分:0)

你应该做那样的事情(简化)

declare

currMonth number:=12;
plsql_block VARCHAR2(500);

begin
plsql_block:='Select Month'||currMonth -2||'_Values,
                     Month'||curr_month-1||'_Values,
                     Month'||currMonth||'_Values 
              from test_table';

execute immediate plsql_block;
end

如果您想获得动态语句的结果,请查看here例如。