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