DEFINE-sats för MATCH_RECOGNIZE

Gäller för:check markerad ja Databricks SQL-kontroll markerad ja Databricks Runtime 19.0 och senare

Important

Den här funktionen finns i Beta. Arbetsyteadministratörer kan styra åtkomsten till den här funktionen från sidan Förhandsversioner . Se Hantera förhandsversioner av Azure Databricks.

Definierar de booleska variabler som PATTERN- och MEASURES-satserna i MATCH_RECOGNIZE referens och test.

Syntax

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

Parameters

  • rowPatternVar

    En identifierare som är unik i DEFINE -satsen. Om du återanvänder ett namn skapar Azure Databricks MATCH_RECOGNIZE_DUPLICATE_PATTERN_VARIABLE.

  • booleanExpr

    Ett booleskt uttryck som inte innehåller en underfråga, aggregeringsfunktion eller fönsterfunktion och som inte refererar till ett annat kolumn- eller kolumnalias än de som table_reference föregår MATCH_RECOGNIZE satsen.

    Kolumnreferenser kan använda följande funktioner som är specifika för DEFINE -satsen:

    En kolumnreferens kan kvalificeras med ett variabelnamn för radmönster (rowPatternVar.colName). Detta väljer värden från rader som mappats till variabeln i den aktuella matchningen. Till exempel LAST(down.tstamp) är tidsstämpeln för den sista raden klassificerad som down. Okvalificerade kolumnreferenser refererar till den aktuella raden i matchningen utan att välja en specifik mönstervariabel.

    Om en radmönstervariabel ännu inte matchas utvärderas den kvalificerade kolumnreferensen till NULL.

    När rowPatternVar namnger mönstervariabeln som för närvarande testas för raden refererar rowPatternVar.colName till radens kolumnvärde och motsvarar en okvalificerad colName. När rowPatternVar du namnger en annan mönstervariabel rowPatternVar.colName läser värden från rader som redan har mappats till variabeln.

    Nondeterministiska funktioner som rand() och uuid() tillåts inte i DEFINE predikat eftersom NFA-simulering kan utvärdera predikat flera gånger per rad. Om du använder en Azure Databricks genererar MATCH_RECOGNIZE_NONDETERMINISTIC_DEFINE.

    Allmänna aggregeringsfunktioner förutom FIRST() och LAST() stöds inte i DEFINE. Om du använder en Azure Databricks genererar MATCH_RECOGNIZE_DEFINE_UNSUPPORTED_AGGREGATE.

Vanliga felvillkor