ROW FILTER cláusula

Aplica-se a:Marque SimDatabricks SQL Marque Sim Databricks Runtime 12.2 LTS e superior Marque Sim somente Unity Catalog

Especifica uma função que é aplicada como um filtro sempre que linhas são buscadas da relação.

Você pode adicionar filtros de linha quando:

Importante

O filtro de linha é aplicado assim que a linha é buscada na fonte de dados.

Para obter mais informações sobre como usar filtros de linha, consulte Filtros de linha e máscaras de coluna.

Privilégios necessários

Para atribuir uma função que adicione um filtro de linha a uma tabela, deve ter o EXECUTE privilégio sobre a função, USE SCHEMA sobre o esquema e USE CATALOG sobre o catálogo pai.

Se estiver a adicionar um filtro de linha ao criar uma nova tabela, deve ter o CREATE TABLE privilégio sobre o esquema.

Se estiver a adicionar um filtro de linha a uma tabela existente , deve ser o proprietário da tabela ou ter o privilégio MANAGE sobre a tabela.

Sintaxe

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

Parâmetros

  • func_name

    Um SQL UDF escalar.

    O tipo de retorno da função deve ser BOOLEAN. Se a função retornar FALSE ou NULL a linha for filtrada.

  • nome_da_coluna

    Especifica colunas da relação de assunto a ser passada para func_name. Cada column_name um deve ser moldável para o parâmetro correspondente de func_name. Você deve fornecer quantas colunas forem exigidas pela assinatura da função. Esta funcionalidade suporta passar zero colunas de entrada, caso em que o SQL UDF deve aceitar parâmetros zero e devolver um resultado booleano independente dos valores das linhas de entrada.

    Importante

    Se o tipo de dado de uma coluna não corresponder exatamente ao tipo correspondente de parâmetro da função, o valor da coluna é implicitamente cast. Com ANSI_MODE desativado, os valores que não podem ser lançados são silenciosamente convertidos para NULL, o que pode produzir resultados de filtro inesperados. Os tipos de parâmetros UDF devem corresponder aos tipos de dados das colunas que lhes são passadas. Veja comportamento de desajustamento dos tipos de dados.

  • constant_literal

    Especifica um parâmetro constante com o tipo correspondendo a um parâmetro de função. Os seguintes tipos são suportados: STRING, numérico (INTEGER, FLOAT,DOUBLE, DECIMAL ...), BOOLEAN, , INTERVALNULL.

Exemplos

Você pode encontrar mais exemplos em Filtros de linha e máscaras de coluna.

-- 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