从DB2图表中删除N个行

发表于:2007-07-13来源:作者:点击数: 标签:
首先,你需要更新你的"关系型" 数据库 管理系统的知识. 在图表中没有"顶端"或"底端"的N个行的概念. 但对结果集有顶端或底端的概念. 你可以用FETCH FIRST N ROWS ONLY子句来得到开始的N个行,但是得到底端的N个行是更困难的问题.为实现这点,你需要用可滚动的指

   首先,你需要更新你的"关系型"数据库管理系统的知识. 在图表中没有"顶端"或"底端"的N个行的概念. 但对结果集有顶端或底端的概念. 你可以用FETCH FIRST N ROWS ONLY子句来得到开始的N个行,但是得到底端的N个行是更困难的问题.为实现这点,你需要用可滚动的指针.可滚动的指针允许你在不用读取/得到所有的行前在结果集里前后移动。我建议你阅读DB2 SQL参考手册和DB2应用程序手册中可滚动的指针的内容(所有的DB2手册可以从网上免费下载)。基本上你应该用可滚动的指针的FETCH LAST 语句,再用FETCH PRIOR语句循环N-1次。那将给出任何结果集的“底端”

的N个行(分类或未分类的)。

对你的其它问题,我不明白你为什么要从图表里删除N个行。在这些行的数据是什么重要吗?我猜想你在问如何在DELETE的WHERE条件处限制行子集的删除,答案是否定的。你必须在同样WHERE条件处注明FOR UPDATE OF来打开一个指针,然后你需要在循环N次的行处打开FETCH和DELETE WHERE CURRENT OF指针。当然这意味着你必须重写一个程序。

 



  

原文转自:http://www.ltesting.net