values-запрос выборки

Функция

Определение values-запроса выборки данных.

Спецификация
   
< values-запрос выборки >::=
Синтаксические правила
  1. Конструкция

    values    (< список значений1 >) [, (< список значений2 >) …] 

    эквивалента конструкции

     select < список значений1 > [union all select < список значений2 >] ...
    values
    (1, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy')),
    (2, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy'));
    
    |          1|Иванов|22.01.1985:00:00:00.00|
    |          2|Петров|15.07.1990:00:00:00.00|
    select 1, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy')
    UNION ALL
    select 2, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy');
    
    |          1|Иванов|22.01.1985:00:00:00.00|
    |          2|Петров|15.07.1990:00:00:00.00|
  2. Конструкция < values-запрос выборки > допустима в тех местах, где по синтаксису разрешена конструкция < select-запрос выборки >.

    table (values (1, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy'),
    2, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy')));
    
    |          1|Иванов|22.01.1985:00:00:00.00|
    |          2|Петров|15.07.1990:00:00:00.00|
    values
    (1, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy')),
    (2, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy'))
    limit 1;
    values
    (1 as id, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy')), (2 as id, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy'))
    order by 2 desc;
    
    |          2|Петров|15.07.1990:00:00:00.00|
    |          1|Иванов|22.01.1985:00:00:00.00|
    select count(*) from (
    values
    (1, 'Иванов', to_date('22.01.1985', 'dd.mm.yyyy')),
    (2, 'Петров', to_date('15.07.1990', 'dd.mm.yyyy')));
    
    |          2|
  3. Максимальное число элементов в списке VALUES - 2000 (все значения полей всех добавляемых строк в INSERT образуют список и общее число этих значений полей строк не должно быть больше 2000, то есть для кортежей из 1 поля можно добавить за раз 2000 строк, для кортежей из 4-х полей - 500 строк и т.д.).