Plomo SQL

Plomo SQL

La función de plomo SQL le permite acceder a la siguiente fila desde la fila actual en un desplazamiento específico. En resumen, la función principal le permite acceder a la siguiente fila desde la actual. Al especificar el valor de desplazamiento, puede acceder a los próximos 1, 2, 3, etc., Filas de la actual.

Es lo opuesto a la función Lag (), lo que le permite acceder a filas anteriores.

SQL Lead ()

La sintaxis de la función es como se muestra:

Lead (value_expression, offset [, predeterminado])
ENCIMA (
[Partition by Partition_Expression]
Orden por sort_expression [ASC | Descifrar]
);

Los siguientes son los argumentos respaldados:

  1. valor_expresión - Especifica el valor de retorno de la fila anterior. La expresión debe evaluar un solo valor.
  2. compensar - Especifica cuántas filas avanzan desde la fila actual para acceder.
  3. por defecto - Establece el valor predeterminado si el desplazamiento está fuera del alcance de la partición. Por defecto, el valor se establece en NULL.
  4. Dividir por - Especifica cómo dividir los datos.
  5. Ordenar - Establece el formato de pedido para las filas en cada partición.

Ejemplo 1

Supongamos que tenemos una tabla que contiene información de los empleados como se muestra:

Para acceder al próximo nombre del empleado, podemos ejecutar una consulta como se muestra:

Seleccione ID, Full_Name, Lead (Full_Name) Over (
Partición por categoría
Orden por ID ASC
) Como next_employee
De los empleados;

El código anterior dividirá los datos basados ​​en la categoría. Luego obtendrá el nombre siguiente en la partición utilizando la función de plomo.

La salida resultante es como se muestra:

Ejemplo 2

Si no hay una fila siguiente en una columna específica (fuera de límite), la función establecerá el valor en nulo, como se muestra arriba.

Para establecer un valor predeterminado para cualquier acceso fuera de alcance, podemos hacer lo siguiente:

Seleccione ID, Full_Name, Lead (Full_Name, 1, 'N/A') Over (
Partición por categoría
Orden por ID ASC
) Como next_employee
De los empleados;

Establecimos el valor predeterminado en 'n/a'. Esto debería reemplazar cualquier valor fuera de límite como se muestra en la salida:

NOTA: Establecer el desplazamiento en 1 es similar a no especificar ningún valor.

Ejemplo 3

Supongamos que desea acceder a las siguientes dos filas desde la fila actual? Podemos hacerlo configurando el valor de desplazamiento en 2.

Una consulta de ejemplo se ilustra a continuación:

Seleccione ID, Full_Name, Lead (Full_Name, 2, 'N/A') Over (
Partición por categoría
Orden por ID ASC
) Como next_employee
De los empleados;

Esta consulta devolverá las siguientes dos filas en cada partición como se muestra a continuación: