首页 > 解决方案 > 如何从条件为 ROWNUM 的 SELECT 结果中更新?

问题描述

我在创建基于以 ROWNUM 作为 WHERE 条件的选择查询的更新查询时遇到一些问题。

我对这些查询进行了实验:

SELECT * 
FROM
    (SELECT ROWNUM, RVT.* FROM RVT)
WHERE RVT_ID IS NOT NULL;

这有效,但是

SELECT * 
FROM
    (SELECT ROWNUM, RVT.* FROM RVT)  AS TEMP_TABLE1
WHERE TEMP_TABLE1.RVT_ID IS NOT NULL;

不起作用。

我想要实现的是:

UPDATE REVIEW_T  
SET RVT_RATING = 1 
FROM (SELECT ROWNUM, RVT.* FROM RVT )
WHERE ROWNUM = 1;

哪个不起作用。还,

UPDATE REVIEW_T  
SET RVT_RATING = 1 
FROM (SELECT ROWNUM, RVT.* FROM RVT) AS TEMP_TABLE
WHERE TEMP_TABLE.ROWNUM = 1;

也不行。

我究竟做错了什么?

标签: oraclesql-updaterownum

解决方案


我想为现有表之一的所有行创建“索引”1,2,3,....600

如果是这样,那么

UPDATE REVIEW_T SET RVT_RATING = rownum;

推荐阅读