Oracle: Как найти значения, присутствующие во внешнем списке, но не представленные в столбце? - PullRequest
0 голосов
/ 26 октября 2010

У меня есть таблица my_table со столбцом my_column и большой список my_list из LONG.Я хотел бы найти все значения, которые присутствуют в my_list, но не присутствуют в my_table.my_column.Как я могу сделать это с SQL, не повторяя огромный список LONG дважды?Пожалуйста, пролите немного света, поскольку я новичок в Oracle.Спасибо.

РЕДАКТИРОВАТЬ:

my_list - это просто краткая форма значений, разделенных запятыми (1, 2, 3, 4), это не переменная, просто способ вызова.

Ответы [ 3 ]

2 голосов
/ 26 октября 2010

Если ваш список постоянен, то, вероятно, будет хорошей идеей сохранить его в справочной таблице и использовать объединение в соответствии с предложением для фильтрации записей.

В противном случае вы можете достичь 2 ограничений:оператор SQL и максимальное количество элементов, которые Oracle допускает в списке.Последнее можно решить, разбив ваш большой список на меньшие списки (my_column no in (...) и my_column no in (...)).

0 голосов
/ 26 октября 2010
SELECT * FROM my_list
EXCEPT
SELECT * FROM my_table
0 голосов
/ 26 октября 2010

возможно

select * from my_table where my_column not in (my_list)

где my_list - список значений через запятую.и насколько велик твой список?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...