日期:2014-05-17  浏览次数:20843 次

存储过程中这种问题,你们是怎么处理的?知道的等于送分啦!
首先这个不是逻辑问题,话不多说,直接上例 Demo,
如下
SQL code

SELECT *
  FROM (SELECT T.*,
               ROW_NUMBER() OVER(PARTITION BY USER_ID ORDER BY CREATEDATE DESC)) RN
  FROM T_USER T)
 WHERE RN = 1;



现在需要将 user表的每一行 加点逻辑判断,转移到另一张表中,比如说T_USER 有 20多列,依照平时的 select * from T_USER 我可以直接把查询的结果放入 T_USER%ROWTYPE 中,但现在就是多了一个 rn,就卡这里了... 该用什么中间变量存储这查出来的数据
(别告诉我定义20个列的变量,然后把结果放入游标 按顺序fetch 进去...)。


------解决方案--------------------
游标啊,直接每行操作啊

干嘛定义20个列? 游标里的列你部变动的话完全不要定义变量取出来啊,只定义哪些你要进行变化的列即可