sql >> Database >  >> RDS >> Mysql

LIMIET / OFFSET in Oracle 11G

Oorspronkelijk antwoord verwijderd, niet haalbaar

Ik vind dat dit mogelijk moet zijn in een enkele SQL-instructie, maar tot nu toe heeft de combinatie van de behoefte aan een gecorreleerde subquery en de behoefte aan een soort analytische functie ervoor gezorgd dat alles wat ik heb geprobeerd is mislukt.

Hier is een procedurele methode die volgens mij zal doen wat je wilt:

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;



  1. MySQL-gegevens invoegen met vaste waarden en meervoudige selectieresultaten

  2. SQL om een ​​lijst met getallen van 1 tot 100 te genereren

  3. Hoe de maand te krijgen met behulp van de datum in MySQL

  4. paginering in lijstweergave