Вставить в таблицу несколько строк с одним другим значением - PullRequest
0 голосов
/ 03 августа 2020

Я считаю, что мой вопрос довольно простой, но я не нашел ничего подобного при поиске. Я хочу вставить в таблицу, тестирующую несколько строк, например:

('03', 'ENG', '203') ('03', 'ENG', '403') ('03', 'ENG', '155') ('03', 'ENG', '222') ('03', 'ENG', '456') ('03', 'ENG', '111') ...

Вместо записи

insert into testing
values('03','ENG','203')
,('03','ENG','403')
,('03','ENG','403')
,('03','ENG','155')
,('03','ENG','222')
,('03','ENG','456')
,('03','ENG','111')

..

Есть ли более быстрый способ написать что-то вроде

insert  into testing
select ('03','ENG',x)
where x in ('203',...)

Было бы даже лучше, если бы мне не приходилось использовать динамику c sql. Заранее спасибо.

1 Ответ

3 голосов
/ 03 августа 2020

Я не уверен, что это намного проще, но вы можете использовать insert . . . select с предложением values() для третьего столбца:

insert into testing
    select '03', 'ENG', col3
    from (values ('203'), ('403'), ('155'), . . . 
         ) v(col3);

Если у вас есть список column3 в таблица и у вас нет дубликатов, вы можете использовать:

insert into testing
    select '03', 'ENG', t.col3
    from column3_table t 
    where t.column3 in ('203', '403', '155', . . . );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...