Dela via


ROW FILTER klausul

Gäller endast för:markerad ja Databricks SQL markerad ja Databricks Runtime 12.2 LTS och senare markerad ja i Unity Catalog

Anger en funktion som tillämpas som ett filter när rader hämtas från relationen.

Du kan lägga till radfilter när du:

Viktigt!

Radfiltret tillämpas så snart raden hämtas från datakällan.

Mer information om hur du använder radfilter finns i Radfilter och kolumnmasker.

Syntax

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

Parametrar

  • func_name

    En skalär SQL UDF.

    Returtypen för funktionen måste vara BOOLEAN. Om funktionen returnerar FALSE eller NULL, filtreras raden bort.

  • kolumnnamn

    Anger kolumner i ämnesrelationen som ska skickas till func_name. Varje column_name måste kunna omvandlas till motsvarande parameter för func_name. Du måste ange så många kolumner som krävs av funktionens signatur. Observera att den här funktionen har stöd för att skicka noll indatakolumner, i vilket fall SQL UDF måste acceptera nollparametrar och returnera ett booleskt resultat oberoende av värdena för indataraderna.

    Viktigt!

    Om en kolumns datatyp inte exakt matchar motsvarande funktionsparametertyp omvandlas kolumnvärdet implicit. Med ANSI_MODE inaktiverat konverteras värden som inte kan gjutas tyst till NULL, vilket kan ge oväntade filterresultat. UDF-parametertyper måste matcha datatyperna för de kolumner som skickas till dem. Se Felmatchningsbeteende för datatyp.

  • constant_literal

    Anger en konstant parameter med den typ som matchar en funktionsparameter. Följande typer stöds: STRING, numeriska (INTEGER, , FLOAT,DOUBLE ... DECIMAL ), BOOLEAN, , INTERVAL, NULL.

Exempel

Du hittar fler exempel i Radfilter och kolumnmasker.

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