Saltar al contenido principal
Documentos
Funciones de cadenaDesencadenaBases de datosFunciones JSONFunciones matemáticasFunciones de fechaÍndicesSintaxis básicaGestión de Tablas y Esquemas

PostgreSQL %

En PostgreSQL, el operador `%` es una función matemática utilizada para calcular el resto de la división de dos números. Se conoce comúnmente como operador módulo y es esencial para las operaciones que requieren determinar la divisibilidad o el comportamiento cíclico.

Utilización

El operador `%` se utiliza cuando necesitas hallar el resto tras dividir un número por otro, lo que resulta útil en diversos cálculos aritméticos, como determinar la paridad o la imparidad. Suele emplearse en situaciones que implican secuencias cíclicas o iteraciones.

SELECT dividend % divisor;

En esta sintaxis, `dividendo % divisor` devuelve el resto de la división de `dividendo` entre `divisor`.

Ejemplos

1. Funcionamiento básico del módulo

SELECT 10 % 3;

Este ejemplo calcula el resto al dividir 10 entre 3, que da como resultado `1`.

2. Comprobar Par o Impar

SELECT CASE WHEN 15 % 2 = 0 THEN 'Even' ELSE 'Odd' END;

Este ejemplo utiliza el operador módulo para determinar si el número `15` es par o impar, obteniendo como resultado `Impar`.

3. Utilizar el módulo en una consulta de tabla

SELECT id, name
FROM employees
WHERE id % 5 = 0;

Aquí, la consulta selecciona `id` y `nombre` de la tabla `empleados` en la que `id` es divisible por 5, mostrando el uso de `%` en consultas prácticas a bases de datos.

4. Módulo con números negativos

SELECT -10 % 3;

Este ejemplo muestra cómo se comporta el operador módulo con números negativos. En PostgreSQL, el resultado es `-1`, ya que el signo del resultado coincide con el dividendo.

Consejos y buenas prácticas

  • Utilízalo para los controles de divisibilidad. El operador `%` es ideal para comprobar si un número es divisible por otro (por ejemplo, comprobar si hay números pares con `% 2`).
  • Optimizar para grandes conjuntos de datos. Cuando utilices `%` en las condiciones, asegúrate de que tu base de datos está indexada adecuadamente para mantener el rendimiento de la consulta.
  • Asegúrate de que el divisor es distinto de cero. Evita utilizar el cero como divisor para evitar errores de división o excepciones.
  • Utilízalo en bucles y ciclos. El operador `%` es útil en operaciones cíclicas, como reiniciar contadores o índices.
  • Compatibilidad de tipos de datos. El operador `%` puede utilizarse tanto con números enteros como con números de coma flotante, pero ten en cuenta el tipo de datos del resultado, que sigue las reglas de las expresiones aritméticas en PostgreSQL.
  • Consideraciones sobre la versión. El comportamiento del operador `%` es coherente en todas las versiones de PostgreSQL, pero comprueba siempre en la documentación de tu versión si hay algún cambio de comportamiento matizado.