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

Apakah tanda kurung bersarang dalam klausa FROM sintaks Oracle SQL yang valid?

Ini adalah sintaks hukum untuk menggunakan tanda kurung dalam klausa gabungan dalam FROM , dan tanda kurung lakukan berpengaruh.

Pertimbangkan kueri ini:

WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
     table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
     table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM   table_a a left join ( table_b b inner join table_c c ON c.id = b.id ) ON b.id = a.id 
ORDER BY 1,2,3;

Tanda kurung memungkinkan Anda untuk melakukan penggabungan dalam tabel b dan c dan kemudian gabungkan luar itu ke a .

Tanpa tanda kurung, mencoba untuk menyatakan bahwa sebagai gabungan kiri tidak mungkin. Anda juga tidak akan mendapatkan baris 11-30 dari tabel a atau baris 11-20 dari tabel c akan menjadi null s (tergantung bagaimana Anda mencoba melakukannya).

Perhatikan bahwa kueri di atas setara dengan:

WITH table_a AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 30),
     table_b as ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 20),
     table_c AS ( SELECT rownum id FROM DUAL CONNECT BY LEVEL <= 10)
SELECT a.id, b.id, c.id
FROM   table_b b inner join table_c c on c.id = b.id right join table_a a on a.id = b.id 
ORDER BY 1,2,3;

, yang tidak memerlukan tanda kurung. Jadi jika Anda benar-benar ingin menghindari penggunaan tanda kurung di FROM klausa, Anda biasanya dapat melakukannya. Secara pribadi, saya lebih suka LEFT JOIN metode dengan tanda kurung alih-alih RIGHT JOIN .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pengembang SQL:buat dokumen DB untuk pengguna lain

  2. Apa yang salah dengan PL/SQL ini? Variabel Bind * TIDAK DINYATAKAN

  3. Dapatkan semua baris tabel diperbarui setelah waktu tertentu

  4. Tampilkan Output Dynamic EXECUTE Dalam pl/sql Dari sqlplus

  5. Tipe Dapper &Oracle Clob