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

bergabung bersyarat di oracle

Hasilnya sebagai berikut:

| TAB1_COL1 | TAB1_COL2 | LKP_COL3 |
|-----------|-----------|----------|
|        10 |       101 |       50 |
|        11 |       102 |       50 |
|        12 |       101 |    99.99 |
|        13 |       103 |       40 |
|        13 |       103 |       60 |
|        14 |       104 |      100 |
|        15 |       108 |       20 |
|        15 |       108 |       80 |
|        16 |       102 |    99.99 |

dihasilkan oleh kueri ini:

SELECT DISTINCT
      tab1.tab1_col1
    , tab1.tab1_col2
    , COALESCE(lkp1.lkp_col3, lkp2.lkp_col3, 99.99) "LKP_COL3"
FROM tab1
      LEFT JOIN lkp1
                  ON tab1.tab1_col1 = lkp1.lkp_col1
                        AND tab1.tab1_col2 = lkp1.lkp_col2
                        AND lkp1.lkp_col4 = 'PICK'
      LEFT JOIN lkp1 lkp2
                  ON tab1.tab1_col1 = lkp2.lkp_col1
                        AND lkp2.lkp_col4 = 'PICK'
ORDER BY
      tab1.tab1_col1
    , tab1.tab1_col2
;

DISTINCT ditambahkan karena gabungan kiri (luar) kedua menghasilkan pengulangan yang tidak diinginkan dalam output.

lihat sqlfiddle ini




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekstrak data dari XML Clob menggunakan SQL dari Oracle Database

  2. Oracle menggandakan baris N kali di mana N adalah kolom

  3. Kueri Oracle Pivot memberikan kolom dengan tanda kutip di sekitar nama kolom. Apa?

  4. Dapatkan Hari Pertama Minggu Dari Nomor Minggu

  5. java.sql.SQLException:Pengecualian Io:Mendapat minus satu dari panggilan baca selama koneksi JDBC dengan Oracle