В PostgreSQL, LEAST()
функцията връща най-малката стойност от списък с произволен брой изрази.
LEAST()
функцията не е включена в стандарта SQL, но е популярно разширение, което много основни RDBMS поддържат.
Синтаксис
LEAST(value [, ...])
Това основно означава, че можем да предадем една или повече стойности на функцията.
Пример
Ето един прост пример за демонстрация:
SELECT LEAST( 5, 2, 9 );
Резултат:
2
Общ тип данни
Всички изрази трябва да бъдат конвертирани в общ тип данни. Резултатът ще използва този тип.
Ако изразите не могат да бъдат преобразувани в общ тип данни, възниква грешка:
SELECT LEAST( 5, 'Two', 9 );
Резултат:
ГРЕШКА:невалиден входен синтаксис за тип цяло число:"Two" LINE 1:SELECT LEAST( 5, 'Two', 9 ); ^
Стрингове
Предишният пример не означава, че не можем да използваме низове. Това е просто да покажем, че не можем да конвертираме типове данни.
За да демонстрираме, ето пример, в който всички аргументи са низове:
SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );
Резултат:
Aardvark
Дати
Ето сравнение на низовете за дата:
SELECT LEAST(date '2030-01-01', date '2030-12-31');
Резултат:
2030-01-01
Нулеви стойности
Нулевите стойности се игнорират, освен ако всички изрази не са null
. Ако всички изрази са null
, след това null
се връща:
\pset null '<null>'
SELECT
LEAST( 5, null, 9 ),
LEAST( null, null, null );
Резултат:
<пред> най-малко | най-малко -------+-------- 5 |
По подразбиране psql връща празния низ за нулеви стойности. В първия ред в този пример зададох нулеви стойности за извеждане <null>
така че да ни улесни да видим нулевия резултат.
Липсващи аргументи
Извикване на LEAST()
без никакви аргументи води до грешка:
SELECT LEAST();
Резултат:
ГРЕШКА:синтактична грешка при или близо до ")"ЛИНИЕ 1:ИЗБЕРЕТЕ НАЙ-МАЛКО(); ^
Въпреки това можем да предадем един аргумент без грешка:
SELECT LEAST( 1 );
Резултат:
1