assema-moussa.com

  

Beste Artikel:

  
Main / Alasql where-Klauseloperator

Alasql where-Klauseloperator

Die Abfragesprache ist eine sehr komponierbare Ausdruckssprache. Jeder Ausdruck in der Abfragesprache gibt null oder mehr Datenmodellinstanzen zurück. Es gibt drei Hauptarten von Ausdrücken. Auf der obersten Ebene kann ein Ausdruck ein OperatorExpression ähnlich einem mathematischen Ausdruck oder ein QuantifiedExpression sein, der einen booleschen Wert ergibt.

Jedes wird detailliert beschrieben, wenn wir die vollständige Grammatik der Sprache untersuchen. Beachten Sie, dass im folgenden Text Wörter in spitzen Klammern Schlüsselwörter bezeichnen, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird. Operatoren führen eine bestimmte Operation für die Eingabewerte oder Ausdrücke aus.

Die Syntax eines Operatorausdrucks lautet wie folgt: Die Sprache bietet eine vollständige Reihe von Operatoren, die Sie in ihren Anweisungen verwenden können. Hier sind die Kategorien von Operatoren: Arithmetische Operatoren, um grundlegende mathematische Operationen durchzuführen;. Sammlungsoperatoren, um Ausdrücke für Sammlungen oder Objekte auszuwerten;. In der folgenden Tabelle ist die Rangfolge der wichtigsten unären und binären Operatoren von höher nach niedriger zusammengefasst:

Es gibt jedoch einige Ausnahmen, die in Vergleichsoperatoren und logischen Operatoren aufgeführt sind. Arithmetische Operatoren werden verwendet, um numerische Werte zu potenzieren, zu addieren, zu subtrahieren, zu multiplizieren und zu dividieren oder Zeichenfolgenwerte zu verketten.

Divide gibt einen Wert vom Typ double zurück, wenn beide Operanden Ganzzahlen sind. Vergleichsoperatoren werden zum Vergleichen von Werten verwendet. Die Vergleichsoperatoren fallen in eine von zwei Unterkategorien: Beispielsweise repräsentiert das erste der folgenden Objekte Jack, dessen Freundin Jill ist.

Testen Sie, ob ein Wert zwischen einem Startwert und einem Endwert liegt. Der Vergleich umfasst sowohl Start- als auch Endwerte. Quantifizierte Ausdrücke werden verwendet, um existenzielle oder universelle Prädikate auszudrücken, an denen die Elemente einer Sammlung beteiligt sind.

Das folgende Beispielpaar veranschaulicht die Verwendung eines quantifizierten Ausdrucks, um zu testen, ob jedes oder ein Element in der Menge [1, 2, 3] von ganzen Zahlen kleiner als drei ist. Ein Typfehler wird ausgelöst, wenn der erste Ausdruck in einem quantifizierten Ausdruck keine Auflistung zurückgibt. Auf Komponenten komplexer Typen im Datenmodell wird über Pfadausdrücke zugegriffen. Der Pfadzugriff kann auf das Ergebnis eines Abfrageausdrucks angewendet werden, der eine Instanz eines komplexen Typs ergibt, z. B. eine Objekt- oder Arrayinstanz.

Bei Objekten basiert der Pfadzugriff auf Feldnamen. Bei Arrays basiert der Pfadzugriff auf einer auf Null basierenden Indizierung im Array-Stil. Bei Multisets basiert der Pfadzugriff ebenfalls auf Null und gibt ein beliebiges Multiset-Element zurück, wenn der Index innerhalb der Größe des Multisets liegt, oder MISSING andernfalls.

Typfehler werden für die unangemessene Verwendung eines Pfadausdrucks ausgelöst, z. B. durch Anwenden eines Feldzugriffs auf einen numerischen Wert. Die folgenden Beispiele veranschaulichen den Feldzugriff für ein Objekt, den indexbasierten Elementzugriff für ein Array und auch eine Zusammensetzung davon. Der grundlegendste Baustein für jeden Ausdruck in der Abfragesprache ist PrimaryExpression. Dies kann ein einfacher Wert für eine Literalkonstante sein, ein Verweis auf eine Abfragevariable im Gültigkeitsbereich, ein Ausdruck in Klammern, ein Funktionsaufruf oder eine neu erstellte Instanz des Datenmodells, z. B. ein neu erstelltes Objekt, Array oder eine Mehrfachmenge von Daten Modellinstanzen.

Der spezielle Wert MISSING ist nur im Zusammenhang mit Feldzugriffen von Bedeutung. Es tritt auf, wenn das Feld, auf das zugegriffen wird, in einem Objekt, auf das zugegriffen wird, überhaupt nicht vorhanden ist. Im Gegensatz zu Standard-SQL spielen doppelte Anführungszeichen dieselbe Rolle wie einfache Anführungszeichen und können auch für Zeichenfolgenliterale in Abfragen verwendet werden. Eine Variable in einer Abfrage kann an einen beliebigen Wert eines legalen Datenmodells gebunden werden. Eine Variablenreferenz bezieht sich auf den Wert, an den eine In-Scope-Variable gebunden ist.

Backticks, z. B. id, werden für begrenzte Bezeichner verwendet. Weitere Informationen dazu, wie Variablenreferenzen genau aufgelöst werden, finden Sie im Anhang zur Variablenauflösung. Ein Anweisungsparameter ist eine externe Variable, deren Wert über die Anweisungsausführungs-API bereitgestellt wird. Ein Fehler wird ausgelöst, wenn der Parameter zum Zeitpunkt der Abfrageausführung nicht gebunden ist.

Die Nummerierung der Positionsparameter beginnt bei 1. Ein Ausdruck kann in Klammern gesetzt werden, um die Rangfolge zu steuern oder eine Abfrage auf andere Weise zu klären. Aus Gründen der Zusammensetzbarkeit ist eine Unterabfrage auch ein Ausdruck in Klammern. Wie die meisten Sprachen sind auch Funktionen in der Abfragesprache enthalten, um nützliche Funktionen zu verpacken oder komplizierte oder wiederverwendbare Berechnungen zu komponieren. Ein Funktionsaufruf ist ein legaler Abfrageausdruck, der den Wert darstellt, der sich aus der Auswertung seines Body-Ausdrucks mit den angegebenen Parameterbindungen ergibt. Die Parameterwertbindungen können selbst beliebige Ausdrücke in der Abfragesprache sein.

Andernfalls wird NULL zurückgegeben. Andernfalls wird NULL zurückgegeben. Ein Hauptmerkmal der Abfragesprache ist die Fähigkeit, neue Datenmodellinstanzen zu erstellen. Arrays sind wie JSON-Arrays, während Multisets eine Beutelsemantik aufweisen. Die folgenden Beispiele veranschaulichen, wie ein neues Array mit 4 Elementen bzw. ein neues Objekt mit 2 Feldern erstellt wird.

Array-Elemente können wie im ersten Beispiel homogen sein, was der übliche Fall ist, oder sie können wie im zweiten Beispiel heterogen sein. Die Datenwerte und Feldnamenwerte, die zum Erstellen von Arrays, Multisets und Objekten in Konstruktoren verwendet werden, sind einfach Abfrageausdrücke.

Daher können die in Konstruktoren verwendeten Auflistungselemente, Feldnamen und Feldwerte einfache Literale sein oder aus Abfragenvariablenreferenzen oder sogar beliebig komplexen Unterabfragen für Abfrageausdrücke stammen.

Typfehler werden ausgelöst, wenn die Feldnamen in einem Objekt keine Zeichenfolgen sind, und doppelte Feldfehler werden ausgelöst, wenn sie nicht unterschiedlich sind.

Warum Couchbase? Reservierte Schlüsselwörter Anhang 2: Leistungsoptimierung Anhang 3: Operatorausdrücke Operatoren führen eine bestimmte Operation für die Eingabewerte oder Ausdrücke aus. Die Syntax eines Operatorausdrucks lautet wie folgt: Hier sind die Kategorien von Operatoren: Arithmetische Operatoren, um grundlegende mathematische Operationen auszuführen; Sammlungsoperatoren, um Ausdrücke für Sammlungen oder Objekte auszuwerten; Vergleichsoperatoren, um zwei Ausdrücke zu vergleichen; Logische Operatoren, um Operatoren mithilfe der Booleschen Logik zu kombinieren.

In der folgenden Tabelle ist die Rangfolge der wichtigsten unären und binären Operatoren von höher nach niedriger zusammengefasst: Arithmetische Operatoren Arithmetische Operatoren werden verwendet, um numerische Werte zu potenzieren, zu addieren, zu subtrahieren, zu multiplizieren und zu dividieren oder Zeichenfolgenwerte zu verketten. Vergleichsoperatoren Vergleichsoperatoren werden zum Vergleichen von Werten verwendet.

Die folgende Tabelle fasst zusammen, wie die Operatoren für den Vergleich fehlender Werte funktionieren. Die folgende Tabelle zeigt die Ergebnisse von NOT für alle möglichen Eingaben. Quantifizierte Ausdrücke QuantifiedExpression :: Pfadausdrücke PathExpression :: Primäre Ausdrücke PrimaryExpr :: Literale Literal :: Variablenreferenzen VariableReference :: Parameterreferenzen ParameterReference :: Parenthesized Expressions ParenthesizedExpression :: Das folgende Beispiel ist ein integrierter Funktionsaufrufausdruck mit dem Wert 8.

Fallausdrücke CaseExpression :: Constructors Constructor :: Leertest der Sammlung. Multiplikation, Division, Modulo. Reichweitenvergleich inklusive auf beiden Seiten. Als unäre Operatoren bezeichnen sie einen positiven oder negativen Ausdruck. Als binäre Operatoren addieren oder subtrahieren sie. Divide gibt einen ganzzahligen Wert zurück, wenn beide Operanden Ganzzahlen sind. Überprüfen Sie, ob eine Sammlung nicht leer ist. Überprüfen Sie, ob eine Sammlung leer ist. Gibt true zurück, wenn die folgende Bedingung false ist, andernfalls false.

Gibt true zurück, wenn beide Zweige true sind, andernfalls false. Gibt true zurück, wenn ein Zweig true ist, andernfalls false.

(с) 2019 assema-moussa.com