ROW FILTER
cláusula
Aplica-se a: Databricks SQL Databricks Runtime 12.2 LTS e superior somente Unity Catalog
Especifica uma função que é aplicada como um filtro sempre que linhas são buscadas na tabela.
Você pode adicionar filtros de linha quando:
- Crie uma tabela usando CREATE TABLE.
- Altere uma tabela usando ALTER TABLE.
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 Filtrar dados de tabela confidenciais usando filtros de linha e máscaras de coluna.
Sintaxe
ROW FILTER func_name ON ( [ column_name | constant_literal [, ...] ] ) [...]
Parâmetros
-
Um SQL UDF escalar.
O tipo de retorno da função deve ser
BOOLEAN
. Se a função retornarFALSE
ouNULL
a linha for filtrada. -
Especifica as colunas da tabela de assunto para as quais passar para
func_name
. Cadacolumn_name
um deve ser moldável para o parâmetro correspondente defunc_name
. Você deve fornecer quantas colunas forem exigidas pela assinatura da função. Observe que esse recurso oferece suporte à passagem de colunas de entrada zero, caso em que o SQL UDF deve aceitar parâmetros zero e retornar um resultado booleano independente de qualquer um dos valores das linhas de entrada. 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
, ,NULL
INTERVAL
.
Exemplos
Você pode encontrar mais exemplos em Filtrar dados confidenciais da tabela usando filtros de linha e máscaras de coluna.
-- Create a table with a row filter column
> CREATE FUNCTION filter_emps(dept STRING) RETURN is_member(dept);
> CREATE TABLE employees(emp_name STRING, dept STRING) WITH ROW FILTER filter_emps ON (dept);
> INSERT INTO employees('Jones', 'Engineering'), ('Smith', 'Sales');
-- As a member of engineering
> SELECT * FROM employees;
Jones Engineering
-- As a member of sales
> SELECT * FROM employees;
Smith Sales