Del via


VALUEIN ER-funksjonen

VALUEIN-funksjonen bestemmer om de angitte inndataene samsvarer med en verdi for et angitt element i den angitte listen. Den returnerer en boolsk verdi av SANN hvis de angitte inndataene samsvarer med resultatet av å kjøre det angitte uttrykket for minst én post i den angitte listen. Hvis ikke returneres den boolske verdien USANN.

Syntaks

VALUEIN (input, list, list item expression)

Argumenter

input: Felt

Den gyldige banen til et element i en datakilde i Postliste-typen. Verdien for dette elementet samsvares.

list: Postliste

Den gyldige banen til en datakilde av Postliste-datatypen.

list item expression: Boolsk

Et gyldig betingelsesuttrykk som enten henviser til eller inneholder ett enkelt felt i den angitte listen som skal brukes for den samsvarende.

Returverdier

Boolsk

Den resulterende boolske verdien.

Bruksnotater

Generelt oversettes VALUEIN-funksjonen til et sett med OR-betingelser. Hvis listen over OR-betingelser er stor, og den maksimal totale lengde på en SQL-setning kan overstiges, bør du vurdere å bruke VALUEINLARGE-funksjonen.

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

I noen tilfeller kan den oversettes til en database SQL-setning ved hjelp av EXISTS JOIN-operatoren.

Notat

Verdien som VALUEIN-funksjonen returnerer, brukes på ulik måte, avhengig av om denne funksjonen brukes til å angi utvalgskriterier for FILTER-funksjonen eller WHERE-funksjonen.

Eksempel 1

Du definerer Liste-datakilden for Beregnet felt-typen i modelltilordningen. Denne datakilden inneholder uttrykket SPLIT ("a,b,c", ",").

Når en datakilde kalles og den er konfigurert som VALUEIN ("B", List, List.Value)-uttrykket, returneres SANN. I dette tilfellet oversettes VALUEIN -funksjonen til følgende sett med betingelser: (("B" = "a") or ("B" = "b") or ("B" = "c")), der ("B" = "b") er lik SANN.

Når en datakilde kalles og den er konfigurert som VALUEIN ("B", List, LEFT(List.Value, 0))-uttrykket, returneres USANN. I dette tilfellet oversettes VALUEIN-funksjonen til følgende betingelse: ("B" = ""), som ikke er lik SANN.

Den øvre grensen for antall tegn i teksten i en slik betingelse er 32 768 tegn. Du bør derfor ikke opprette datakilder som kan overstige denne grensen ved kjøretid. Hvis grensen overskrides, slutter programmet å kjøre, og et unntak blir registrert. Denne situasjonen kan for eksempel oppstå hvis datakilden er konfigurert som WHERE (List1, VALUEIN (List1.ID, List2, List2.ID), og List1 og List2-listene inneholder et stort antall poster.

I noen tilfeller kan VALUEIN-funksjonen oversettes til en databasesetning ved hjelp av EXISTS JOIN-operatoren. Denne virkemåter skjer når FILTER-funksjonen brukes og følgende betingelser er oppfylt:

  • BE OM SPØRRING-valget er deaktivert for datakilden for VALUEIN-funksjonen som refererer til listen over poster. Ingen flere betingelser brukes på denne datakilden ved kjøretid.
  • Ingen nestede uttrykk konfigureres for datakilden for VALUEIN-funksjonen som refererer til listen over poster.
  • Et listeelement for VALUEIN-funksjonen refererer til et felt for den angitte datatypen, ikke til et uttrykk eller en metode for datakilden.

Vurder å bruke dette alternativet i stedet for WHERE-funksjonen som er beskrevet tidligere i dette eksemplet.

Eksempel 2

Du definerer de følgende datakildene i modelltilordningen:

  • I-datakilden for Tabellposter-typen. Denne datakilden refererer til Intrastat-tabellen.
  • Port-datakilden for Tabellposter-typen. Denne datakilden refererer til IntrastatPort-tabellen.

Når en datakilde kalles opp som er konfigurert som uttrykket FILTER (In, VALUEIN(In.Port, Port, Port.PortId), genereres følgende SQL-setning for å returnere filtrerte poster i Intrastat-tabellen.

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

For dataAreaId-feltene genereres den endelige SQL-setningen ved hjelp av IN-operatoren.

Eksempel 3

Du definerer de følgende datakildene i modelltilordningen:

  • Le-datakilden for Beregnet felt-typen. Denne datakilden inneholder uttrykket SPLIT ("DEMF,GBSI,USMF", ",").
  • I-datakilden for Tabellposter-typen. Denne datakilden refererer til Intrastat-tabellen, og alternativet Kryssfirma er aktivert for den.

Når en datakilde kalles opp som er konfigurert som uttrykket FILTER (In, VALUEIN (In.dataAreaId, Le, Le.Value), inneholder den endelige SQL-setningen følgende betingelse.

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

Tilleggsressurser

Logiske funksjoner

VALUEINLARGE-funksjoner