PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

GREATEST() Функция в PostgreSQL

В PostgreSQL GREATEST() функцията връща най-голямата (или най-голямата) стойност от списък с произволен брой изрази.

GREATEST() функцията не е включена в стандарта SQL, но е популярно разширение, което много основни RDBMS поддържат.

Синтаксис

GREATEST(value [, ...])

Това означава, че можем да предадем една или повече стойности на функцията.

Пример

Ето един прост пример за демонстрация:

SELECT GREATEST( 3, 15, 7 );

Резултат:

15

Стрингове

Ето пример, при който всички аргументи са низове:

SELECT GREATEST( 'Bear', 'Zebra', 'Ant' );

Резултат:

Zebra

Дати

Ето сравнение на низовете за дата:

SELECT GREATEST(date '2027-01-01', date '2027-12-31');

Резултат:

2027-12-31

Общ тип данни

Всички изрази трябва да бъдат конвертирани в общ тип данни. Резултатът ще използва този тип.

Ако изразите не могат да бъдат преобразувани в общ тип данни, възниква грешка:

SELECT GREATEST( 3, 'Fifteen', 7 );

Резултат:

ERROR:  invalid input syntax for type integer: "Fifteen"
LINE 1: SELECT GREATEST( 3, 'Fifteen', 7 );
                            ^

Нулеви стойности

Нулевите стойности се игнорират, освен ако всички изрази не са null . Ако всички изрази са null , след това null се връща:

\pset null '<null>'
SELECT 
    GREATEST( 3, null, 7 ),
    GREATEST( null, null, null );

Резултат:

 greatest | greatest 
----------+----------
        7 | <null>

По подразбиране psql връща празния низ за нулеви стойности. В първия ред в този пример зададох нулеви стойности за извеждане <null> така че да ни улесни да видим нулевия резултат.

Липсващи аргументи

Извикване на GREATEST() без никакви аргументи води до грешка:

SELECT GREATEST();

Резултат:

ERROR:  syntax error at or near ")"
LINE 1: SELECT GREATEST();
                        ^

Въпреки това можем да предадем един аргумент без грешка:

SELECT GREATEST( 1 );

Резултат:

1

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да постигнем висока наличност на PostgreSQL с pgBouncer

  2. правилна анотация за хибернация за байт[]

  3. Обединете една колона в заявка с много колони

  4. Колоната за промяна на миграцията на Rails за използване на Postgres масиви

  5. Rails 3.1 - Натискане към Heroku - Грешки при инсталиране на postgres адаптер?