FOR M TO 1..100 LOOP
   SELECT * into ... FROM TABLE  WHERE A1=100-M;
END LOOP;
这样试一下

解决方案 »

  1.   

    A1是个字段 M是个变量  数据库里有很多 A1,A2,A3,A4,A4,A5,A6...A100 我现在要一次查询一个 有100个 我以前写的是写100个判断  现在想通过字符串处理 写一个就可以了
      

  2.   

    结合使用动态sql语句
    str varchar2(200);
    FOR  M  TO  1..100  LOOP  
         str:='SELECT  *   FROM  TABLE    WHERE  A"||m||'=100-'||M;
         execute immediate str into ...;  
    END  LOOP;  
      

  3.   

    数据库版本是多少?如果是8I以上就可以使用
      execute immediate 来执行
      

  4.   

    str varchar2(1000);再定义长点
      

  5.   

    我觉得用execute immediate
    SQL_String VARCHAR2(500);
    temp_string VARCHAR2(500);
    FOR  M  TO  1..100  LOOP  
         SELECT field_name INTO temp_string FROM TABLE WHERE ...
         SQL_String:='SELECT  *   FROM  TABLE    WHERE  temp_string || M = 100;
         execute immediate str into ...;  
    END  LOOP;  
      

  6.   

    嗯,这个意思的话那只能用动态SQL