【问题标题】:Oracle SQL : How to SELECT initial/final value of a FOR LOOP from a table?Oracle SQL:如何从表中选择 FOR LOOP 的初始/最终值?
【发布时间】:2016-06-15 10:11:26
【问题描述】:

我想从表中选择一个 for 循环的最终值,如下所示: MyTable 看起来像这样: ('Me',1) ('You',2)

for i in 1..(SELECT MyID from MyTable where MYName = 'Me')

但我在 SELECT 出现的地方收到错误消息。

【问题讨论】:

    标签: sql for-loop select plsql


    【解决方案1】:

    您需要定义上限。使用这样的东西:

    declare
      my_upper number;
    begin
      select count(*) into my_upper
      from MyTable where MYNAME = 'Me';
    
      for i in 1..my_upper loop
        ... do something here ...
      end loop;
    end;
    

    见:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/controlstatements.htm#LNPLS004

    【讨论】:

    • 但是没有几行 MYNAME='Me'。我试过了:declare my_upper number; begin select MyID into my_upper from MyTable where MYNAME = 'Me'; for i in 1..my_upper loop ... do something here ... end loop; end; 它奏效了。
    【解决方案2】:

    如果您知道您将始终返回一行,请使用select into

    select myid into my_upper 
      from mytable 
     where namename = 'M';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 2018-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多