Ansicht
Dokumentation

ABENCDS_WHERE_CLAUSE_V2 - CDS WHERE CLAUSE V2

ABENCDS_WHERE_CLAUSE_V2 - CDS WHERE CLAUSE V2

General Data in Customer Master   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- CDS-View-Entität, SELECT, WHERE

... WHERE cds_cond ...

Wirkung

Definiert eine WHERE-Bedingung für die Ergebnismenge einer CDS-View-Entität. Bei einem Zugriff auf die CDS-View-Entität enthält die Ergebnismenge nur die Daten aus der Datenquelle data_source, die der hinter WHERE angegebenen Bedingung cds_cond genügen.

Die in der Bedingung ausgewerteten Felder müssen nicht in der SELECT-Liste als Elemente der CDS-View-Entität definiert werden.

Wenn die View-Entität mithilfe eines Join-Ausdrucks mehrere Datenquellen verwendet, muss allen Feldern, die in der WHERE-Bedingung angegeben sind, der Name ihrer Datenquelle getrennt durch einen Punkt (.) vorangestellt werden. Der Präfix ist in allen Fällen erforderlich, selbst wenn die Feldnamen eindeutig sind.

Folgende Regeln gelten für die Operanden und die Syntax der WHERE-Bedingung einer CDS-View-Entität:

  • Alle relationalen Operatoren sind erlaubt. Dies bedeutet, dass alle Vergleichsoperatoren sowie BETWEEN, LIKE, IS [NOT] NULL und IS [NOT] INITIAL erlaubt sind.
  • Die Booleschen Operatoren NOT, AND und OR werden unterstützt.
Wenn als relationaler Operator ein Vergleichsoperator verwendet wird, kann lhs auch ein Literal, ein Fallausdruck oder ein arithmetischer Ausdruck sein.
Wenn als relationaler Operator IS NULL verwendet wird, kann lhs auch ein Fallausdruck sein.
Wenn als relationaler Operator ein Vergleichsoperator verwendet wird, kann rhs auch ein Fallausdruck oder ein arithmetischer Ausdruck sein.
  • Wenn der Operator LIKE verwendet wird, muss rhs ein Zeichenliteral sein.

  • Ein Feld einer Datenquelle kann über einen Pfadausdruck path_expr.element angegeben werden, wenn dessen CDS-Assoziationen keine nicht-SQL-CDS-Entitäten als Assoziationsziel haben und die Kardinalität aller durchlaufenen Assoziationen eindeutig „zu-1“ ist:

Mit element kann ein Element des Assoziationsziels der letzten CDS-Assoziation des Pfads angegeben werden.
  • Sonstige Ausdrücke und Funktionsaufrufe können nicht angegeben werden.

Einschränkung

Die Bedingung in der WHERE-Klausel darf nicht mit Klammern beginnen. Folgendes ist ungültig:

... WHERE (field1 + field2) * 5 < 1000

Folgende Lösungen sind möglich:

  • Die Reihenfolge der Operanden darf geändert werden, damit der Ausdruck in Klammern nicht als erster Operand vorkommt.
Beispiel: ... WHERE 5 * (field1 + field2) < 1000
  • Um die Klammer am Anfang zu vermeiden, kann man 1* am Anfang setzen.
Beispiel: ... WHERE 1 * (field1 + field2) * 5 < 1000

Hinweis

In der WHERE-Bedingung dürfen anders als in der HAVING-Bedingung keine Aggregatausdrücke angegeben werden.

Beispiel

Die CDS-View-Entität demo_sales_order_where hat eine WHERE-bedingung, die die relationalen Operatoren LIKE und BETWEEN, eine Zeichenkettenfunktion, und einen Cast-Ausdruck enthält.






Vendor Master (General Section)   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9335 Date: 20240523 Time: 175956     sap01-206 ( 90 ms )