sql >> Database teknologi >  >> RDS >> Mysql

LIMIT / OFFSET i Oracle 11G

Slettet originalt svar, ikke levedygtigt

Jeg føler, at dette burde kunne lade sig gøre i en enkelt SQL-sætning, men indtil videre har kombinationen af ​​behovet for en korreleret underforespørgsel og behovet for en slags analytisk funktion fået alt, hvad jeg prøvede, til at mislykkes.

Her er en proceduremæssig metode, som jeg tror vil gøre, hvad du vil:

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. SQL Returnerer 1,0 i ny variabel baseret på tilfælde, når sætningen henviser til flere andre variabler

  2. Undgå tvetydige kolonnefejl ved brug af JOIN i MySQL

  3. Sådan forbinder du Grails 3.0 til min lokale Mysql-database

  4. Forskellen mellem SYSDATE() og NOW() i MariaDB