sql >> Databáze >  >> RDS >> Oracle

Aktualizujte sloupec pomocí náhodných jedinečných hodnot z jiné tabulky

Hmmmm . . Pokud chcete libovolné, můžete použít boční spojení adresa spíše než náhodná adresa:

select t1.*, t2.*
from table1 t1 left join lateral
     (select t2.*
      from table2 t2
      where t2.company_number = t1.company_number and rownum = 1
     ) t2
     on 1=1;

Pokud skutečně chcete náhodnou adresu, která je stejná pro každé číslo společnosti, můžete použít:

select t1.*, t2.*
from table1 t1 left join lateral
     (select t2.*,
             row_number() over (partition by company_number order by dbms_random.random) as seqnum
      from table2 t2
     ) t2
     on t2.company_number = t1.company_number and
        seqnum = 1;

Zde je db<>hulba ilustrující, že syntaxe funguje.




  1. Vyberte poslední řádek pomocí GROUP BY v MySQL

  2. Zkrátit všechny tabulky v databázi MySQL jedním příkazem?

  3. Jak napsat nulové bezpečné porovnání <=> v čistém SQL?

  4. Jak bezpečně uložíte uživatelské heslo a sůl v MySQL?