я был под впечатлением, что он не мог, но потом я наткнулся на этих 2 примерах (с использованием Oracle XE и SQL Developer):Можно ли использовать подзапрос с ключевым словом VALUES?
Пример 1 - выполняется без ошибок
insert into regions (region_id, region_name)
values ((select max(region_id)+1 from regions), 'Great Britain');
Пример 2 - возвращается ошибка (показано ниже)
insert into regions (region_id, region_name)
values (select region_id, region_name from regions);
ошибка:
Error starting at line 1 in command:
insert into regions (region_id, region_name)
values (select region_id, region_name from regions)
Error at Command Line:2 Column:9
Error report:
SQL Error: ORA-00936: missing expression
00936. 00000 - "missing expression"
*Cause:
*Action:
Таким образом, похоже, что есть еще что-то. Может ли кто-нибудь объяснить, при каких условиях это/нехорошо включать подзапросы с ключевым словом VALUES
?
Получил - так, в предложении 'VALUES' разрешены только скалярные подзапросы? –
@JeffLevine. , , Да, это хороший способ сказать это. Я избегаю предложения 'VALUES' просто потому, что' insert. , , select' делает все, что он делает, и многое другое. –