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

cara memilih daftar 10.000 id unik dari dual di Oracle SQL

Gunakan koleksi (tidak terbatas pada 1000 item seperti IN klausanya adalah):

SELECT COLUMN_VALUE AS id
FROM   TABLE(
         SYS.ODCIVARCHAR2LIST(
           'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
         )
       )

SYS.ODCIVARCHAR2LIST dan SYS.ODCINUMBERLIST adalah jenis koleksi yang disediakan di SYS skema.

Anda dapat bergabung dengan ini langsung ke tabel mana pun Anda SELECT ing dari tanpa perlu menggunakan DUAL tabel:

SELECT y.*
FROM   your_table y,
       TABLE(
         SYS.ODCIVARCHAR2LIST(
           'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
         )
       ) i
WHERE  y.id = i.COLUMN_VALUE;

Jika Anda bisa mendapatkan tipe koleksi yang dibuat maka Anda bahkan tidak memerlukan TABLE ekspresi dan dapat menggunakannya secara langsung di WHERE klausa menggunakan MEMBER OF operator:

CREATE OR REPLACE TYPE stringlist IS TABLE OF VARCHAR2(200);
/

SELECT *
FROM   yourtable
WHERE  id MEMBER OF stringlist(
                      'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
                    );

Anda bahkan dapat meneruskan nilai sebagai parameter bind - lihat jawaban saya di sini



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. penggunaan fungsi rownum dengan> masuk ke oracle

  2. Hapus cache level 2 Hibernate setelah pembaruan DB secara manual

  3. Bagaimana Anda mendapatkan hasil yang diformat dengan baik dari prosedur Oracle yang mengembalikan kursor referensi?

  4. Oracle JDBC:nama pengguna/kata sandi tidak valid (ora-01017)

  5. .masalah penyisipan JDBC berikutnya