分类:
2008-04-14 20:11:04
来源:赛迪网 作者:84013 |
问:“怎样从DB2图表中删除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指针。当然这意味着你必须重写一个程序。 |