【发布时间】:2019-10-08 12:38:28
【问题描述】:
这是我的 SQL 查询
UPDATE
(SELECT
*
FROM
web_fe_ipo_ipo_application apps
INNER JOIN web_fe_ipo_ipo_entry ipo ON apps.ipo_link_id = ipo.ipo_ref_number
WHERE
( ( apps.status = 0
OR ( apps.status = 2
AND apps.sub_status = 0
AND ipo.enable_omnibus_account = 1 ) )
AND ( apps.applied_qty BETWEEN 1 AND 10 )
AND apps.ipo_link_id = '984'
AND apps.latest = 1
AND ipo.latest = 1
AND apps.tranche_name = 'Public-1' )
ORDER BY
ipo_random(50)
FETCH FIRST 5 ROWS ONLY) selection
SET selection.initial_allot_qty = 5;
但是效果不好
我需要从表中选择随机数据,然后在执行此查询后更新我得到以下错误
Error at Command Line : 20 Column : 5
Error report -
SQL Error: ORA-01733: virtual column not allowed here
01733. 00000 - "virtual column not allowed here"
*Cause:
*Action:
【问题讨论】:
-
Oracle 在更新中使用联接不是很灵活。您可能需要考虑
merge。 -
我可以在使用
merge随机选择行后更新它吗? -
。 .如果您的表有主键,那应该不是问题。
-
如果你知道,请写一个答案;对我有很大帮助
标签: sql oracle join sql-update