0

我正在尝试根据查询结果创建变量列表。我可以创建任意数量的变量,所以我希望它是动态的。但是,我不知道如何将循环迭代次数合并到变量名中。

我正在考虑这样的事情:

declare rc int default 0;
declare n_rows int;    

--The number of variables to declare below is unknown   

  select count(1) into n_row from MyTable;
  declare varname1 to varname@n_rows varchar(100);

    while rc < n_rows do    
  select varname into var@rc from (select varname, rownumber() over() as rn  from MyTable) where rn = rc;      

- 我希望这能解决如下问题:

select varname into var1...

select varname into var2...

select varname into var3..

结束时;

4

1 回答 1

0

一般来说,如果您发现自己必须存储未知数量的变量,则表明程序设计不正确。为什么你认为你需要将每一行存储在内存中?数据库针对集合处理进行了优化。

但是,如果您坚持按自己的方式做事,请考虑使用数组;数组可以随着您向其中添加元素而增长(直到它消耗所有应用程序内存并使数据库崩溃,但这与您无关,对吧?)

于 2013-09-13T12:22:25.220 回答