SQL - ограничить значения вставки из другой таблицы

Я пытаюсь вставить следующее:

insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL'

проблема в том, что выберите * из TABLEB, где code = 'NL'; возвращает более 1 значения.

есть ли в любом случае, чтобы ограничить это только 1 значение?

Я старался select min(b.id) но это не сработало

2 ответа

Решение

Использовать где rownum = 1

insert into TABLEA select b.ID,..... from TABLEB b where code = 'NL' and rownum = 1

Но вы уверены, что хотите сделать это? Что делать, если это на самом деле 2-й ряд вы хотите. Возможно, вы захотите выяснить, почему ваш запрос возвращает более одного.

Из того, что я могу собрать, вы хотите, чтобы был вставлен только один случай, когда code = NL, хотя есть несколько записей, которые соответствуют этому.

Если это то, что вы хотите, измените ваш "select *" на "select top 1 *", и он будет извлекать только одну запись из вашего подзапроса.

Другие вопросы по тегам