SQL虚拟列

Jam*_*mes 2 sql oracle sql-update

我收到'SQL错误:ORA-01733:虚拟列不允许在这里'

这是我的代码:

update (
   Select g.FIRST300BB from ( 
      select FIRST300BB, row_number() over (order by pitchandeventid) r
      from gamedata_me 
      where hitterid = 5000
      and (eventcode = 'BB')
   ) g
   where r between 0 and 300
) t
set t.FIRST300BB =1
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我被卡住,使用Oracle所以我发现我不能做更新/从语法...所以我已经正式盘旋了货车

jos*_*989 6

例如,尝试等效查询

update gamedata_me 
  set first300BB=1
where rowid in(
          Select g.rid from ( 
              select rowid rid, row_number() over (order by pitchandeventid) r
                  from gamedata_me 
                 where hitterid = 5000
                 and (eventcode = 'BB')
               ) g
   where r between 0 and 300
    ) 
Run Code Online (Sandbox Code Playgroud)