Saltar al contenido principal

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

OperadorSignificado
eqIgual a
neDiferente a
gtMayor que
geMayor o igual
ltMenor que
leMenor o igual
andY
orO

🧪 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 $filter junto con $select para obtener solo los datos que necesitas.
  • Revisa la metadata para conocer los nombres exactos de las columnas disponibles.
  • Combina filtros con $orderby y $top para mejorar aún más el rendimiento.