ввод строки в таблицу - PullRequest
1 голос
/ 05 мая 2011

Я делаю некоторую отладку в SQL для Oracle 10g. У меня есть большая строка ввода, которая используется в «IN Clause», т.е.

select * from table where col in ('str2','str3','str4','str5',...) 

я хочу преобразовать предложение in в строки или таблицу? Есть ли способ сделать это, т.е.

select 'str2','str3','str4','str5', .. from dual 

но это выводит несколько столбцов, а я хочу несколько строк?

Редактировать:

Вот что я пытаюсь сделать. Предположим, у меня есть данные Excel в tmp_table1 (невозможно создать в реальности), а tmp_table1 совпадает с предложением IN, тогда приведенный ниже оператор выдаст недостающие ключи.

SELECT *
  FROM tmp_table1
 WHERE unique_id NOT IN (
               SELECT unique_id
                 FROM table1
                WHERE unique_id IN
                                 ('str1', 'str2', 'str3', 'str4'))

now @ andriy-m решение работает, если значение in в строке меньше 4000. но что, если оно больше?

Ответы [ 2 ]

2 голосов
/ 06 мая 2011

Возможно, вы ищете это решение .

0 голосов
/ 06 мая 2011

Вы можете объединить значения в несколько строк:

SELECT 'str2' AS col FROM dual
UNION
SELECT 'str3' FROM dual
UNION
SELECT 'str4' FROM dual
UNION
SELECT 'str5' FROM dual
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...