sql >> Base de Datos >  >> RDS >> PostgreSQL

Función GREATEST() en PostgreSQL

En PostgreSQL, el GREATEST() La función devuelve el mayor (o mayor) valor de una lista de cualquier número de expresiones.

El GREATEST() La función no está incluida en el estándar SQL, pero es una extensión popular compatible con muchos de los principales RDBMS.

Sintaxis

GREATEST(value [, ...])

Esto significa que podemos pasar uno o más valores a la función.

Ejemplo

Aquí hay un ejemplo simple para demostrarlo:

SELECT GREATEST( 3, 15, 7 );

Resultado:

15

Cuerdas

Aquí hay un ejemplo donde todos los argumentos son cadenas:

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

Resultado:

Zebra

Fechas

Aquí hay una comparación de cadenas de fecha:

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

Resultado:

2027-12-31

Tipo de datos comunes

Todas las expresiones deben poder convertirse a un tipo de datos común. El resultado usará este tipo.

Si las expresiones no se pueden convertir a un tipo de datos común, se produce un error:

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

Resultado:

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

Valores nulos

Los valores nulos se ignoran a menos que todas las expresiones sean null . Si todas las expresiones son null , luego null se devuelve:

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

Resultado:

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

De forma predeterminada, psql devuelve la cadena vacía en valores nulos. En la primera línea de este ejemplo, establecí valores nulos para generar <null> para que nos sea más fácil ver el resultado nulo.

Argumentos faltantes

Llamando a GREATEST() sin ningún argumento da como resultado un error:

SELECT GREATEST();

Resultado:

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

Sin embargo, podemos pasar un argumento sin error:

SELECT GREATEST( 1 );

Resultado:

1