sql >> Database teknologi >  >> RDS >> Oracle

Opdater kolonne ved hjælp af tilfældige unikke værdier fra en anden tabel

Hmmmm. . . Du kan bruge en lateral sammenføjning, hvis du ønsker en vilkårlig adresse i stedet for en tilfældig adresse:

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;

Hvis du rent faktisk ønsker en tilfældig adresse, der er den samme pr. firmanummer, kan du bruge:

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;

Her er en db<>violin, der illustrerer, at syntaksen virker.




  1. ORA-24247:netværksadgang nægtet af adgangskontrolliste (ACL)

  2. Hvornår skal du bruge SQL Server med Access? (Tip:Næsten altid)

  3. Gratis Oracle-databasemiljø eller prøveversion

  4. Mærkeligt resultat med UNION og BESTIL EFTER