Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

LIMIT / OFFSET no Oracle 11G


Resposta original excluída, não viável

Acho que isso deve ser possível em uma única instrução SQL, mas até agora a combinação da necessidade de uma subconsulta correlacionada e a necessidade de algum tipo de função analítica fez com que tudo o que tentei falhar.

Aqui está um método procedural que acho que fará o que você deseja:
DECLARE
  CURSOR t IS
  SELECT LEAD(contractid,4) OVER (PARTITION BY assetid ORDER BY lasttradedate ASC) lead_contractid
    FROM table1
    FOR UPDATE;
BEGIN
  FOR r IN t LOOP
     UPDATE table1 SET nextcontractid = r.lead_contractid
       WHERE CURRENT OF t;
  END LOOP;
END;