Oracle/PLSQL: función de PLOMO

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

Oracle/PLSQL: función de PLOMO

Este tutorial de Oracle explica cómo usar Oracle/PLSQL función principal Con sintaxis y ejemplos.

describir

La función LEAD de Oracle/PLSQL es una función analítica que le permite consultar varias filas en una tabla a la vez sin unir la tabla a sí misma. Devuelve el valor de la siguiente fila de la tabla. Para devolver un valor de la fila anterior, intente usar la función LAG.

sintaxis

La sintaxis de la función LEAD en Oracle/PLSQL es:

LEAD ( expression [, offset [, default] ] )
OVER ( [ query_partition_clause ] order_by_clause )

parámetro o parámetro

Las expresiones pueden contener expresiones de otras funciones integradas, pero pueden No Contiene cualquier función analítica. El desplazamiento es opcional. Es el desplazamiento físico de la fila actual en la tabla. Si se omite este parámetro, el valor predeterminado es 1. predeterminado opcional. Este valor se devuelve si el desplazamiento está fuera de los límites de la tabla. Si se omite este parámetro, por defecto está vacío. cláusula_partición_consulta Opcional. Se utiliza para dividir los resultados en grupos basados ​​en una o más expresiones. order_by_clause opcional. Se utiliza para ordenar los datos dentro de cada partición.

devolver los bienes

La función LEAD devuelve el valor de la siguiente fila de la tabla.

aplicar para

La función LEAD está disponible en las siguientes versiones de Oracle/PLSQL:

  • Oráculo 12c, Oráculo 11g, Oráculo 10g, Oráculo 9i, Oráculo 8i

ejemplo

La función LEAD se puede utilizar en Oracle/PLSQL.

Veamos un ejemplo. Si tenemos una tabla de pedidos con los siguientes datos:

fecha de orden ID DEL PRODUCTO cantidad
2007/09/25 1000 20
2007/09/26 2000 15
2007/09/27 1000 8
2007/09/28 2000 12
2007/09/29 2000 2
2007/09/30 1000 4

Ejecutamos la siguiente instrucción SQL:

SELECT product_id, order_date,
LEAD (order_date,1) OVER (ORDER BY order_date) AS next_order_date
FROM orders;

Devolverá los siguientes resultados:

ID DEL PRODUCTO fecha de orden NEXT_ORDER_DATE
1000 2007/09/25 2007/09/26
2000 2007/09/26 2007/09/27
1000 2007/09/27 2007/09/28
2000 2007/09/28 2007/09/29
2000 2007/09/29 2007/09/30
1000 2007/09/30 nulo

En este ejemplo, la función LEAD ordenará todos los valores de order_date en la tabla de pedidos en orden ascendente y luego devolverá el siguiente order_date porque usamos el desplazamiento 1.

Si usamos un desplazamiento de 2, devolverá order_date de 2 pedidos más tarde. Si hubiéramos utilizado un desplazamiento de 3, habría devuelto la fecha_pedido de los 3 pedidos posteriores… y así sucesivamente.

usar partición

Ahora veamos un ejemplo más complejo en el que usamos la cláusula de partición de consulta para devolver la siguiente fecha_pedido para cada id_producto.

Ingrese la siguiente instrucción SQL:

SELECT product_id, order_date,
LEAD (order_date,1) OVER (PARTITION BY product_id ORDER BY order_date) AS next_order_date
FROM orders;

Devolverá los siguientes resultados:

ID DEL PRODUCTO fecha de orden NEXT_ORDER_DATE
1000 2007/09/25 2007/09/27
1000 2007/09/27 2007/09/30
1000 2007/09/30 nulo
2000 2007/09/26 2007/09/28
2000 2007/09/28 2007/09/29
2000 2007/09/29 nulo

En este ejemplo, la función LEAD dividirá los resultados por product_id y luego por order_date de la siguiente manera PARTITION BY product_id ORDER BY order_dateEsto significa que la función LEAD solo evaluará el valor order_date si product_id coincide con product_id del registro actual. Cuando se encuentra un nuevo product_id, la función LEAD reinicia el cálculo y las particiones con el product_id adecuado.

Como puede ver, el tercer registro en el conjunto de resultados tiene un valor NULL para next_order_date porque es el último registro en la partición con product_id 1000 (ordenado por order_date). Lo mismo ocurre con el sexto registro con un product_id de 2000.

(Visited 3 times, 1 visits today)