sql >> Databasteknik >  >> RDS >> Oracle

Uppdatera kolumn med slumpmässiga unika värden från en annan tabell

Hmmmm . . . Du kan använda en lateral sammanfogning om du vill ha en godtycklig adress snarare än en slumpmässig adress:

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;

Om du faktiskt vill ha en slumpmässig adress som är densamma per företagsnummer kan du använda:

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;

Här är en db<>fiol som illustrerar att syntaxen fungerar.




  1. newid() inuti sql-serverfunktionen

  2. få 2 dagar sedan fråga i mysql

  3. Sortering av arrayelement

  4. varför fungerar min nod-app i ett ögonblick och kraschar (heroku)?