Определение максимального значения в списке

Функция

Определение максимального значения в заданном списке.

Спецификация
 
< синтаксис >::=
< элемент списка >::=
Синтаксические правила
  1. Типы данных всех элементов списка должны быть совместимы.

  2. < Элементы списка > могут иметь числовой, символьный или «дата-время» тип данных.

  3. Запрещается одновременное использование в < элементах списка > строковых значений c фиксированной и переменной длиной: либо все должны быть с фиксированной длиной, либо все – с переменной длиной.

    Недопустимая конструкция:
    select greatest( cast 'aaa' as varchar, cast 'abc' as char);
    
    Допустимая конструкция:
    select greatest( cast 'aaa' as varchar, cast 'abc' as varchar);
  4. Все аргументы функции могут задаваться в виде < SQL-параметра >, который должен содержать спецификацию типа данных параметра.

    select greatest(year, ? (int), ? (int)) from auto limit 1;
    50
    40
    |       71|
    select greatest (to_date('20.07.2015', 'dd.mm.yyyy'),
                     to_date('21.07.2015', 'dd.mm.yyyy'));
    |21.07.2015:00:00:00|
Возвращаемое значение
  1. Максимальное из значений в списке.

  2. Тип возвращаемого результата – DOUBLE, если элементы списка имеют числовые типы данных.

  3. Если список состоит из строковых (байтовых) значений, то длина результата равна максимальной из длин элементов списка.

Примеры
select count(*) from auto
 where make='FORD'
   and year=greatest(1, select max(year) from auto);
| 60|