Oracle
 sql >> база данни >  >> RDS >> Oracle

Актуализиране на колона с помощта на произволни уникални стойности от различна таблица

Хмммм . . . Можете да използвате странично съединение, ако искате произволно адрес, а не произволен адрес:

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;

Ако наистина искате произволен адрес, който е един и същ за номер на фирма, можете да използвате:

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;

Тук е db<>цигулка, илюстрираща, че синтаксисът работи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORACLE:Материализираният изглед не работи при използване на LEFT JOIN

  2. В SQL*Plus, как да променя подканата, за да показва свързания потребител и база данни?

  3. Открит е цикъл при изпълнение на рекурсивна заявка

  4. SQL грешка ORA-01722:невалиден номер

  5. Oracle raise_application_error номер на грешка най-добра практика