Oracle
 sql >> база данни >  >> RDS >> Oracle

ORA-00907 Проблем с липсваща дясна скоба - изберете с ред чрез вътрешна заявка за вмъкване

И двата текущи отговора пренебрегват факта, че използването на order by и rownum в същата заявка е опасно по своята същност. Няма абсолютно никаква гаранция, че ще получите данните, които искате. Ако искате първия ред от подредена заявка, трябва използвайте подзаявка:

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
           from fir_tabl
          where id = 1
          order by created_on desc )
 where rownum = 1
       ;

Можете също да използвате функция като rank за да подредите данните в метода, който искате, но ако сте имали два created_on дати, които са били идентични, ще получите 2 стойности с rnk = 1 .

insert into my_tbl ( col1, col2 )
select data, 'more data'
  from ( select data
              , rank() over ( order by created_on desc ) as rnk
           from fir_tabl
          where id = 1)
 where rnk = 1
       ;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL - Генериране и актуализиране на колона с различно произволно число във всеки ред

  2. Как работи GROUP BY?

  3. конфигурирайте django с проблем с базата данни на Oracle 11g

  4. Грешка при персонализирана заявка за пагиниране при извличане на първите N реда

  5. spring boot hibernate query invalid user error