DEFINE-Klausel für MATCH_RECOGNIZE

Gilt für:check marked yes Databricks SQL check marked yes Databricks Runtime 19.0 and above

Important

Dieses Feature befindet sich in der Betaversion. Arbeitsbereichsadministratoren können den Zugriff auf dieses Feature über die Vorschauseite steuern. Siehe Manage Azure Databricks Previews.

Definiert die booleschen Variablen, die die PATTERN- und MEASURES-Klauseln von MATCH_RECOGNIZE Verweis und Test aufweisen.

Syntax

DEFINE { rowPatternVar AS booleanExpr } [, ...]

Parameters

  • rowPatternVar

    Ein Bezeichner, der innerhalb der DEFINE Klausel eindeutig ist. Wenn Sie einen Namen wiederverwenden, löst Azure Databricks MATCH_RECOGNIZE_DUPLICATE_PATTERN_VARIABLE aus.

  • booleanExpr

    Ein boolescher Ausdruck, der keine Unterabfrage, Aggregatfunktion oder Fensterfunktion enthält, und verweist nicht auf einen anderen Spalten- oder Spaltenalias als auf diejenigen, die table_reference der MATCH_RECOGNIZE Klausel vorangestellt sind.

    Spaltenverweise können die folgenden für die DEFINE Klausel spezifischen Funktionen verwenden:

    Ein Spaltenverweis kann durch einen Zeilenmustervariablennamen (rowPatternVar.colName) qualifiziert werden. Dadurch werden Werte aus Zeilen ausgewählt, die dieser Variablen in der aktuellen Übereinstimmung zugeordnet sind. Ist z. B LAST(down.tstamp) . der Zeitstempel der letzten Zeile, die als down. Nicht qualifizierte Spaltenverweise verweisen auf die aktuelle Zeile in der Übereinstimmung, ohne eine bestimmte Mustervariable auszuwählen.

    Wenn eine Zeilenmustervariable noch nicht übereinstimmt, wird der qualifizierte Spaltenverweis ausgewertet.NULL

    Wenn rowPatternVar die Mustervariable, die derzeit für die Zeile getestet wird, benannt wird, rowPatternVar.colName bezieht sich auf den Spaltenwert dieser Zeile und entspricht einem nicht qualifizierten colNameWert. Wenn rowPatternVar eine andere Mustervariable benannt wird, werden Werte aus Zeilen gelesen, rowPatternVar.colName die dieser Variablen bereits zugeordnet sind.

    Nicht deterministische Funktionen wie rand() z. B. und uuid() sind in DEFINE Prädikaten nicht zulässig, da NFA-Simulation Prädikate mehrmals pro Zeile auswerten kann. Wenn Sie einen verwenden, löst Azure Databricks MATCH_RECOGNIZE_NONDETERMINISTIC_DEFINE aus.

    Allgemeine Aggregatfunktionen außer FIRST() und LAST() werden nicht unterstützt in DEFINE. Wenn Sie einen verwenden, löst Azure Databricks MATCH_RECOGNIZE_DEFINE_UNSUPPORTED_AGGREGATE aus.

Häufige Fehlerbedingungen