Эквивалент функции GREATEST в PostgreSQL в SQLite

В PostgreSQL есть полезная функция под названием GREATEST. Он возвращает наибольшее значение из переданных ему, как описано здесь .

Есть ли эквивалент в SQLite?

Обратите внимание: мне нужно только для работы с двумя аргументами.


person Alex Gaynor    schedule 30.01.2010    source источник


Ответы (1)


SELECT MAX(1,2,..)

ref: https://sqlite.org/lang_corefunc.html#maxoreunc

max(X,Y,...)

Функция max () с несколькими аргументами возвращает аргумент с максимальным значением или возвращает NULL, если какой-либо аргумент имеет значение NULL. Функция max () с несколькими аргументами ищет в своих аргументах слева направо аргумент, который определяет функцию сопоставления, и использует эту функцию сопоставления для всех сравнений строк. Если ни один из аргументов max () не определяет функцию сортировки, то используется ДВОИЧНАЯ функция сортировки. Обратите внимание, что max () - это простая функция, когда она имеет 2 или более аргумента, но работает как агрегатная функция, если дан только один аргумент.

person Matthew    schedule 30.01.2010
comment
Хорошо, может кто-нибудь объяснить странное поведение функции max со строками. select max ('rb', 'VISA', 'Visa', 'Visa Card1', 'VISA VISA Card', 'Visaaa') возвращает 'rb', почему?!? - person zlatko; 08.09.2018
comment
@zlatko: похоже на сравнение с учетом регистра. строчные буквы идут после прописных. - person apenwarr; 22.11.2018
comment
@zlatko - посмотрите таблицу ASCII! - person Vérace; 30.11.2020
comment
Будьте осторожны, поведение с NULL отличается: PostgreSQL GREATEST возвращает NULL, только если все аргументы равны NULL. SQLite MAX возвращает NULL, если любой аргумент равен NULL. - person pdw; 23.05.2021