Expresión CASE en Postgres

Postgres es un sistema de gestión de bases de datos relacional de código abierto que se ha convertido en uno de los más populares y utilizados en la actualidad. Al trabajar con bases de datos, en ocasiones necesitamos realizar operaciones condicionales sobre los datos almacenados en ellas. Para ello, Postgres nos brinda la posibilidad de utilizar su expresión CASE, que nos permite realizar evaluaciones de condiciones y verificaciones sobre los datos de una tabla.
A continuación, exploraremos con detalle su uso y sintaxis en Postgres.
Sintaxis básica de la expresión CASE
La sintaxis básica de la expresión CASE se muestra a continuación:
SELECT
CASE
WHEN condición1 THEN resultado1
WHEN condición2 THEN resultado2
ELSE resultado3
END
FROM tabla;
Donde:
- condición1, condición2, etc., son las condiciones que se evaluarán.
- resultado1, resultado2, etc., son los valores que se retornarán cuando se cumpla una condición.
- ELSE resultado3 es el valor que se retornará en caso de que ninguna de las condiciones anteriores se cumpla.
Expresión CASE anidada
Postgres también nos permite anidar expresiones CASE en su interior, lo que nos da aún más posibilidades en la evaluación de datos. La sintaxis de la expresión CASE anidada es similar a la expresión CASE básica.
SELECT
CASE
WHEN condición1 THEN
CASE
WHEN subcondición1 THEN resultado1
ELSE resultado2
END
ELSE resultado3
END
FROM tabla;
Aplicación práctica de la expresión CASE
La expresión CASE se puede utilizar en diversos escenarios, como la filtración, el cálculo, la selección y la definición de valores predeterminados. Por ejemplo, si queremos seleccionar una columna condicionalmente y reemplazar algunos valores, podemos hacer lo siguiente:
SELECT
column1,
column2,
CASE
WHEN column3 LIKE '%texto%' THEN 'TEXTO'
ELSE column3
END AS nueva_columna
FROM tabla;
Este ejemplo selecciona tres columnas de una tabla y aplica la expresión CASE a la columna 3 reemplazando los valores que contengan la palabra 'texto' por 'TEXTO'.
Ejemplos de expresión CASE
A continuación, se presentan algunos ejemplos más sobre cómo podemos utilizar la expresión CASE en Postgres:
- Filtrar por rango:
Si queremos filtrar los productos en una tabla según su precio, podemos hacer lo siguiente:
SELECT
nombre,
precio,
CASE
WHEN precio BETWEEN 20 AND 30 THEN 'Rango 1'
WHEN precio BETWEEN 31 AND 40 THEN 'Rango 2'
ELSE 'Otros'
END AS rango
FROM productos;
Este ejemplo selecciona algunos campos de una tabla de productos y aplica la expresión CASE para filtrar los productos según su precio y asignarles un rango.
- Seleccionar valores según un rango de fechas:
Si queremos obtener el número de pedidos realizados en una tabla de ventas en un rango de fechas específico, podemos hacer lo siguiente:
SELECT
COUNT(*) AS num_pedidos,
CASE
WHEN fecha_venta BETWEEN '2021-01-01' AND '2021-03-31' THEN 'Primer trimestre'
WHEN fecha_venta BETWEEN '2021-04-01' AND '2021-06-30' THEN 'Segundo trimestre'
ELSE 'Otros'
END AS trimestre
FROM ventas
GROUP BY trimestre;
Este ejemplo cuenta los pedidos realizados en un rango de fechas específico y utiliza la expresión CASE para asignarlos a un trimestre.
Conclusión
La expresión CASE es una herramienta muy útil en el lenguaje SQL que nos permite realizar evaluaciones de condiciones y verificaciones sobre los datos de una tabla, lo que nos permite obtener información relevante y generar visualizaciones importantes. Su sintaxis básica y su posibilidad de ser anidada nos ofrecen diversas posibilidades de aplicación, tales como filtración, cálculo, selección y definición de valores predeterminados.
Preguntas frecuentes
¿La expresión CASE solo se utiliza en Postgres?
No, la expresión CASE es una estructura disponible en la mayoría de los sistemas de gestión de bases de datos relacionales, como SQL Server, Oracle y MySQL.
¿La expresión CASE solo trabaja con condiciones específicas?
No, se puede utilizar en diversas condiciones lógicas y matemáticas, tales como operadores lógicos, comparaciones matemáticas, cálculos aritméticos, entre otros.
¿Cómo se integra la expresión CASE con la programación?
La expresión CASE se utiliza principalmente en SQL, como lenguaje de consulta dirigido a bases de datos. Al trabajar con bases de datos, se utiliza frecuentemente junto con lenguajes de programación como Python y Java.
¿Qué es una tabla en Postgres?
Una tabla en Postgres es una estructura que almacena datos en filas y columnas. Cada columna corresponde a un atributo de los datos almacenados, mientras que cada fila se corresponde con un registro específico.
[nekopost slugs="comando-psql-no-encontrado,crear-una-base-de-datos-no-existente-postgresql,verifique-la-version-postgresql,postgresql-cascade-eliminar,postgresql-crear-indice,tipos-de-datos-de-fecha-de-fecha-postgresql,eliminar-una-fila-especifica-en-postgresql,use-la-funcion-agg-de-matriz-postgresql,postgres-fecha-actual-menos-1-dia"]

Deja una respuesta