Filtrar información
Cuando se trabaja con entidades que contienen muchos registros, es común que no se necesite toda la información disponible. Para obtener solo los datos relevantes y mejorar el rendimiento de las consultas, puedes aplicar filtros usando el parámetro $filter.
❓ ¿Cómo funciona $filter?
El parámetro $filter permite aplicar condiciones sobre los campos de una entidad. Se añade al final de la URL de consulta y utiliza operadores lógicos para comparar valores.
La sintaxis básica es:
$filter=Columna operador Valor
⚙️ Operadores disponibles
| Operador | Significado |
|---|---|
eq | Igual a |
ne | Diferente a |
gt | Mayor que |
ge | Mayor o igual |
lt | Menor que |
le | Menor o igual |
and | Y |
or | O |
🧪 Ejemplos prácticos
Filtrar productos
Consultar los productos cuyo nombre sea igual a LECHE:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Nombre eq 'LECHE'
Consultar los productos cuyo nombre sea diferente a LECHE:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Nombre ne 'LECHE'
Consultar los productos cuyo precio de venta sea mayor a 10000:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 gt 10000
Consultar los productos cuyo precio de venta sea mayor o igual a 10000:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 ge 10000
Consultar los productos cuyo precio de venta sea menor a 10000:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 lt 10000
Consultar los productos cuyo precio de venta sea menor o igual a 10000:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 le 10000
Consultar los productos cuyo precio de venta sea mayor a 10000 y nombre igual a LECHE:
GET /v1/OrganizacionOData.svc/Producto?$format=json&$filter=Venta1 gt 10000 and Nombre eq 'LECHE'
Filtrar clientes
Consultar los clientes cuyo estado civil sea SOLTERO:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=EstadoCivil eq 'Soltero'
Consultar los clientes cuya edad sea mayor a 30:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=Edad gt 30
Consultar los clientes cuyo país sea CO y ciudad sea MEDELLÍN:
GET /v1/OrganizacionOData.svc/Cliente?$format=json&$filter=Pais eq 'CO' and Ciudad eq '01005'
Filtrar compras
Consultar las compras con estado ANULADO:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=Estado eq 'ANULADO'
Consultar las compras con total mayor a 500000:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=Total gt 500000
Consultar las compras realizadas después del 1 de enero de 2025:
GET /v1/OrganizacionOData.svc/Compra?$format=json&$filter=FechaIngreso gt datetime'2025-01-01T00:00:00'
✅ Recomendaciones
- Usa
$filterjunto con$selectpara obtener solo los datos que necesitas. - Revisa la metadata para conocer los nombres exactos de las columnas disponibles.
- Combina filtros con
$orderbyy$toppara mejorar aún más el rendimiento.