首先这个不是逻辑问题,话不多说,直接上例 Demo,
如下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 进去...)。
如下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 进去...)。
第二,不能也可以创建一个视图create view vvv as
SELECT *
FROM (SELECT T.*,
ROW_NUMBER() OVER(PARTITION BY USER_ID ORDER BY CREATEDATE DESC)) RN
FROM T_USER T)
WHERE 1=2然后用vvv%rowtype