Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Oracle:Kiri gabungkan tabel yang sangat besar dan batasi baris yang digabungkan menjadi satu dengan nilai bidang terbesar

coba ini

SELECT m.*,
       (select s.s_field 
          from t_sub s
         where s.m_id = m.m_id
           and s.s_order = (select max(s_order) from t_sub where t_sub.m_id = s.m_id)
           and rownum = 1)
FROM t_main m

atau Anda dapat mencoba ini (ini kode Anda tetapi beberapa modifikasi)

SELECT m.*,
      (select s.s_field from 
       (SELECT s_field, m_id
          FROM t_sub
         --where t_sub.m_id = m.m_id
         order by s_order DESC) s
        where s.m_id = m.m_id
          and rownum = 1)
FROM t_main m


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosedur tersimpan Oracle, mengembalikan kursor ref vs array asosiatif

  2. Apakah mungkin untuk meneruskan objek ke prosedur paket PL SQL sebagai parameter?

  3. Mengonversi Panjang ke Varchar2

  4. tidak divalidasi dengan kesalahan ora-02299

  5. Permintaan Oracle untuk mengambil nama kolom