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

Función MENOS () en PostgreSQL

En PostgreSQL, el LEAST() La función devuelve el valor más pequeño de una lista de cualquier número de expresiones.

El LEAST() 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

LEAST(value [, ...])

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

Ejemplo

Aquí hay un ejemplo simple para demostrarlo:

SELECT LEAST( 5, 2, 9 );

Resultado:

2

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 LEAST( 5, 'Two', 9 );

Resultado:

ERROR:  invalid input syntax for type integer: "Two"
LINE 1: SELECT LEAST( 5, 'Two', 9 );
                         ^

Cuerdas

El ejemplo anterior no sugiere que no podamos usar cadenas. Es simplemente para mostrar que no podemos convertir tipos de datos.

Para demostrarlo, aquí hay un ejemplo donde todos los argumentos son cadenas:

SELECT LEAST( 'Cat', 'Dog', 'Aardvark' );

Resultado:

Aardvark

Fechas

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

SELECT LEAST(date '2030-01-01', date '2030-12-31');

Resultado:

2030-01-01

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 
    LEAST( 5, null, 9 ),
    LEAST( null, null, null );

Resultado:

 least | least  
-------+--------
     5 | <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 LEAST() sin ningún argumento da como resultado un error:

SELECT LEAST();

Resultado:

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

Sin embargo, podemos pasar un argumento sin error:

SELECT LEAST( 1 );

Resultado:

1