Oracle
 sql >> база данни >  >> RDS >> Oracle

как да изберете списък с 10 000 уникални идентификатори от двойни в oracle SQL

Използвайте колекция (те не са ограничени до 1000 елемента като IN). клауза е):

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

SYS.ODCIVARCHAR2LIST и SYS.ODCINUMBERLIST са типове колекции, които се предоставят в SYS схема.

Можете да се присъедините директно към тази таблица, която сте SELECT от, без да е необходимо да използвате DUAL таблица:

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

Ако можете да създадете тип колекция, тогава дори не се нуждаете от TABLE израз и може да го използва директно в WHERE клауза, използваща MEMBER OF оператор:

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

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

Можете дори да предадете стойностите като параметър за свързване - вижте моя отговор тук



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Метод за събиране:Процедура EXTEND в базата данни на Oracle

  2. Проверете ограничение, извикване на функция Oracle SQL разработчик

  3. FROM_TZ() Функция в Oracle

  4. Как да използвате аналитични функции в oracle (над разделяне по ключова дума)

  5. Съхранена процедура в Java срещу съхранена процедура в PL/SQL