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

sintaks pernyataan pilih Oracle sederhana

SELECT name
FROM   FRUIT
WHERE  color IN ( 'Red', 'Green' )
GROUP BY name
HAVING COUNT( DISTINCT color ) = 2;

Anda juga dapat menggunakan koleksi untuk melakukan hal yang sama:

CREATE FruitColorTableType AS TABLE OF FRUIT.COLOR%TYPE;
/

SELECT DISTINCT
       Name
FROM   FRUIT f
WHERE  FruitColorTableType( 'Red', 'Green' )
       SUBMULTISET OF
       CAST( MULTISET(
         SELECT Color
         FROM   FRUIT c
         WHERE  c.name = f.name
       ) AS FruitColorTableType );

ATAU:

SELECT name
FROM   FRUIT
WHERE  color MEMBER OF FruitColorTableType( 'Red', 'Green' )
GROUP BY name
HAVING COUNT( DISTINCT color ) = 2;

dan jika Anda menulis ulang sebagai fungsi/prosedur, Anda dapat meneruskan koleksi sebagai argumen dan menggunakan CARDINALITY() fungsi daripada hard coding ukuran koleksi.

(Tidak menguji dua kueri terakhir ini sehingga mungkin ada beberapa kesalahan ketik)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EF dengan oracle - Penyedia toko yang ditentukan tidak dapat ditemukan dalam konfigurasi, atau tidak valid.

  2. Bagaimana saya bisa menghapus sepenuhnya oracle 11g?

  3. Perlu menghitung catatan dan jumlah grup berdasarkan tanggal di Oracle db menggunakan pengembang sql

  4. Metadata fungsi bawaan Oracle

  5. ORA-00933:Perintah SQL tidak diakhiri dengan benar saat menghapus dua tabel secara bersamaan