Freigeben über


VALUEIN EB-Funktion

Die Funktion VALUEIN bestimmt, ob die Eingabe mit einem angegebenen Wert eines angegebenen Artikels in der angegebenen Liste übereinstimmt. Sie gibt den booleschen Wert TRUE zurück, wenn die angegebene Eingabe mit dem Ergebnis der Ausführung des angegebenen Ausdrucks für mindestens einen Datensatz der entsprechenden Liste übereinstimmt. Andernfalls gibt sie den booleschen Wert FALSE zurück.

Syntax

VALUEIN (input, list, list item expression)

Argumente

input: Feld

Der gültige Pfad des Elementes einer Datenquelle des Typs Datensatzliste. Der Wert dieses Elements, der abgeglichen wird.

list: Datensatzliste

Der gültige Pfad einer Datenquelle des Datentyps Datensatzliste.

list item expression: Boolesch

Ein gültiger Bedingungsausdruck , der entweder zu einem Feld zeigt oder ein einzelnes Feld der Liste enthält, die zum Abgleich verwendet werden soll.

Rückgabewerte

Boolesch

Der resultierende boolesche Wert.

Anwendungshinweise

Im Allgemeinen wird die Funktion VALUEIN zu einem Satz OR-Bedingungen umgerechnet. Wenn die Liste von ODER-Bedingungen groß ist und die maximale Gesamtlänge einer SQL-Anweisung überschritten werden kann, erwägen Sie die Verwendung der VALUEINLARGE-Funktion.

(input = list.item1.value) OR (input = list.item2.value) OR …

In einigen Fällen kann es in eine SQL-Datenbankanweisung durch Verwendung des Operators EXISTS JOIN übersetzt werden.

Notiz

Der Wert, den die Funktion VALUEIN zurückgibt, wird unterschiedlich verwendet, je nachdem, ob diese Funktion zur Angabe der Auswahlkriterien für die Funktion FILTER oder die Funktion WHERE verwendet wird.

Beispiel 1

In Ihrer Modellzuweisung definieren Sie die Datenquelle Liste des Typs Berechnetes Feld. Diese Datenquelle enthält den Ausdruck SPLIT ("a,b,c", ",").

Beim Aufruf einer Datenquelle, wenn diese als VALUEIN ("B", List, List.Value)-Ausdruck konfiguriert wurde, wird TRUE zurückgegeben. In diesem Fall wird die Funktion VALUEIN in den folgenden Satz an Bedingungen umgerechnet: (("B" = "a") or ("B" = "b") or ("B" = "c")), wobei ("B" = "b")TRUE entspricht.

Beim Aufruf einer Datenquelle, wenn diese als VALUEIN ("B", List, LEFT(List.Value, 0))-Ausdruck konfiguriert wurde, wird FALSE zurückgegeben. In diesem Fall wird die Funktion VALUEIN in die folgende Bedingung umgerechnet: ("B" = ""), was nicht TRUE entspricht.

Der obere Grenzwert für die Anzahl der Zeichen im Text einer derartigen Bedingung entspricht 32.768 Zeichen. Daher sollten Sie keine Datenquellen erstellen, die möglicherweise zur Laufzeit diesen Grenzwert überschreiten. Wenn das Limit überschritten wird, wird die Anwendung nicht mehr ausgeführt und eine Ausnahme ausgelöst. Beispielsweise kann diese Situation erfolgen, wenn die Datenquelle als WHERE (List1, VALUEIN (List1.ID, List2, List2.ID) konfiguriert wird, und die Listen List1 und List2 eine große Anzahl von Datensätzen enthalten.

In einigen Fällen wird die Funktion VALUEIN in eine Datenbankaussage durch Verwendung des Operators EXISTS JOIN umgerechnet. Dieses Verhalten tritt auf, wenn die Funktion FILTER verwendet wird und die folgenden Bedingungen erfüllt sind:

  • Die Option BITTEN SIE UM ABFRAGE wird für die Datenquelle der Funktion VALUEIN deaktiviert, die die Liste von Datenträgen bezieht. Es werden keine zusätzliche Bedingungen auf diese Datenquelle zur Bearbeitungszeit angewendet.
  • Es werden keine eingebetteten Ausdrücke für die Datenquelle der Funktion VALUEIN konfiguriert, die sich auf die Liste von Datenträgen bezieht.
  • Ein Listenelement der Funktion VALUEIN bezieht sich auf ein Feld der angegebenen Datenquelle, nicht auf einen Ausdruck oder eine Methode dieser Datenquelle.

Erwägen Sie die Nutzung dieser Option anstelle der Funktion WHERE, die weiter oben in diesem Beispiel beschrieben wird.

Beispiel 2

Die folgenden Datenquellen definieren Sie in Ihrer Modellzuordnung:

  • Die Datenquelle In des Typs Tabellendatensätze. Diese Datenquelle bezieht sich auf die Intrastat-Tabelle.
  • Die Datenquelle Port des Typs Tabellendatensätze. Diese Datenquelle bezieht sich auf die IntrastatPort-Tabelle.

Wenn eine Datenquelle angerufen wird, die als Ausdruck FILTER (In, VALUEIN(In.Port, Port, Port.PortId) konfiguriert, wird die nächste SQL-Anweisung generiert, um gefilterte Datensätze der Intrastat-Tabelle zurückzugeben.

select … from Intrastat
exists join TableId from IntrastatPort
where IntrastatPort.PortId = Intrastat.Port

Für dataAreaId-Felder wird die endgültige SQL-Anweisung durch die Verwendung des Operators IN generiert.

Beispiel 3

Die folgenden Datenquellen definieren Sie in Ihrer Modellzuordnung:

  • Die Datenquelle Le des Typs Berechnetes Feld. Diese Datenquelle enthält den Ausdruck SPLIT ("DEMF,GBSI,USMF", ",").
  • Die Datenquelle In des Typs Tabellendatensätze. Diese Datenquelle bezieht sich auf die Intrastat-Tabelle und die Option Unternehmensübergreifend ist dafür aktiviert.

Wenn eine Datenquelle angerufen wird, die als Ausdruck FILTER (In, VALUEIN (In.dataAreaId, Le, Le.Value) konfiguriert wird, enthält die abschließende SQL-Anweisung die folgende Bedingung.

Intrastat.dataAreaId IN ('DEMF', 'GBSI', 'USMF')

Zusätzliche Ressourcen

Logische Funktionen

VALUEINLARGE-Funktionen