不知道我的理解有没有问题,有问题请指教。
是不是使用
Insert into Table1 (field1, field2, field3)
    (Select field1, field2, field3 From Table2 Fetch first 10 Rows Only)时,他先执行后面的语句,生成了一个集合,之后把这集合再insert,因此就出错。

解决方案 »

  1.   

    可以说你理解的没问题,反正单独执行Select ... From Table2 Fetch ...
    是没有问题的。但是如果作为子句执行就会报错。不知道怎么样才能正确运行,
    或者有没有别的比较好的方法呢?请指教。谢谢。
      

  2.   

    子查询是不能使用fetch 子句和 update 子句
      

  3.   

    如果要高效的执行这句SQL,有没有什么好的方法呢?
    总不至于先Fetch,然后一句一句的去执行Insert操作吧。
      

  4.   

    使用存储过程就可以。在存储过程中用循环处理,DB2有相应的例子,如果要使用子查询,就必须插入所有子查询的结果列,
    子查询是不能使用fetch 子句,不能插入部分行
      

  5.   

    可以使用With语句呀
    Insert into Table1 (field1, field2, field3)
    WITH AAA(field1, field2, field3 )AS 

    Select field1, field2, field3 From Table2 
    Fetch first 10 Rows Only

    SELECT field1, field2, field3 from AAA