Compartir vía


cláusula ROW FILTER

Se aplica a:comprobar sí marcado Databricks SQL comprobar sí marcado Databricks Runtime 12.2 LTS y superior comprobar sí marcado Solo Unity Catalog

Especifica una función que se aplica como filtro cada vez que se capturan filas de la relación.

Puede agregar filtros de fila cuando:

Importante

El filtro de fila se aplica en cuanto se captura la fila desde el origen de datos.

Para obtener más información sobre cómo usar filtros de fila, consulte Filtros de fila y máscaras de columna.

Sintaxis

ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]

Parámetros

  • func_name

    Una SQL UDF escalar.

    El tipo de valor devuelto de la función debe ser BOOLEAN. Si la función devuelve FALSE o NULL se filtra la fila.

  • nombre_de_columna

    Especifica las columnas del tema que se van a pasar a func_name. Cada column_name debe convertirse al parámetro correspondiente de func_name. Debe proporcionar tantas columnas como necesite la firma de la función. Tenga en cuenta que esta característica admite el paso de cero columnas de entrada, en cuyo caso la SQL UDF debe aceptar cero parámetros y devolver un resultado booleano independiente de cualquiera de los valores de las filas de entrada.

    Importante

    Si el tipo de datos de una columna no coincide exactamente con el tipo de parámetro de función correspondiente, el valor de columna se convierte implícitamente. Con ANSI_MODE deshabilitado, los valores que no se pueden convertir de forma silenciosa se convierten en NULL, lo que puede producir resultados de filtro inesperados. Los tipos de parámetros UDF deben coincidir con los tipos de datos de las columnas que se les han pasado. Consulte Comportamiento de coincidencia de tipos de datos.

  • constant_literal

    Especifica un parámetro de constante con el tipo que coincide con un parámetro de función. Se admiten los siguientes tipos: STRING, numérico (INTEGER, FLOAT,DOUBLE, DECIMAL ....), BOOLEAN, INTERVAL, NULL.

Ejemplos

Puede encontrar más ejemplos en Filtros de fila y máscaras de columna.

-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_account_group_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees VALUES ('Jones', 'Engineering'), ('Smith', 'Sales');

-- As a member of engineering
> SELECT * FROM employees;
  Jones Engineering

-- As a member of sales
> SELECT * FROM employees;
  Smith Sales