Funkcja VALUEINLARGE ER
Funkcja VALUEINLARGE
określa, czy podane dane wejściowe typu Int64 lub Integer pasują do którejkolwiek wartości określonego elementu na podanej liście. Zwraca ona wartość logicznąTRUE, jeśli określone dane wejściowe pasują do wyniku uruchamiania określonego wyrażenia dla co najmniej jednego rekord z danej listy. W przeciwnym wypadku zwraca ona wartość logicznąFALSE. Aby zrozumieć różnicę związaną z funkcją VALUEIN
, zapoznaj się z sekcją Wskazówki użycia, znajdującą się w dalszej części tego artykułu.
Składnia
VALUEINLARGE (input, list, list item expression)
Argumenty
input
: Pole
Prawidłowa ścieżka elementu źródła danych o typie danych Lista rekordów. To z wartością tego elementu będzie dokonywane porównanie.
list
: Lista rekordów
Prawidłowa ścieżka elementu źródła danych o typie danych Lista rekordów.
list item expression
: Wyrażenie
Prawidłowe wyrażenie warunkowe, które wskazuje na albo zawiera pojedyncze pole określonej listy, która ma być używana do porównania.
Wartości zwracane
Wartość logiczna
Wyjściowa wartość logiczna.
Uwagi dotyczące użytkowania
Jeśli określone dane reprezentują typ elementu źródła danych taki jak Int64 lub Integer, do którego wywołanie jest możliwe do przetłumaczenia na bezpośrednią instrukcję SQL, określona lista jest konwertowana na tabelę tymczasową SQL, a w bazie danych dokonywane jest dopasowanie przez wykonanie pojedynczej kwerendy EXISTS JOIN
. W przeciwnym razie funkcja działa jako funkcja VALUEIN
.
Gdy określone dane wejściowe reprezentują element źródła danych zaprojektowany jako element inny niż Int64 i Integer, błąd występuje w czasie projektowania, informując o tym, że funkcja VALUEINLARGE
nie ma zastosowania dla skonfigurowanego wyrażenia encji.
Gdy jest wykonywane wyrażenie funkcyjne VALUEINLARGE
i w zakresie tej operacji jest używana więcej niż jedna tabela tymczasowa, wystąpi błąd środowiska uruchomieniowego.
Przykład
Definiuje się następujące źródła danych w mapowaniu modelu:
- Źródło danych In typu Rekordy tabeli.
- To źródło danych odnosi się do tabeli Intrastat.
- Opcja Międzyfirmowe jest ustawiona na wartość Nie.
- Źródło danych InMemory typu Pole obliczeniowe.
- To źródło danych zawiera wyrażenie
WHERE (In, In.Port <> "")
.
- To źródło danych zawiera wyrażenie
- Źródło danych InFiltered typu Pole obliczeniowe.
- To źródło danych zawiera wyrażenie
FILTER (In, VALUEINLARGE(In.RecId, InMemory, InMemory.RecId)
.
- To źródło danych zawiera wyrażenie
Jeśli źródło danych InFiltered jest wywoływane w kontekście firmy DEMF, w bazie danych aplikacji zostanie utworzona nowa tabela tymczasowa, a w tabeli zostanie wstawiona lista kodów identyfikacyjnych rekordów z kodami identyfikującymi rekordy, a w celu zwrócenia filtrowanych rekordów generowana jest instrukcja SQL tabeli Intrastat.
SELECT … from Intrastat T1
WHERE ((T1.PARTITION=?) AND (T1.DATAAREAID IN (N'DEMF'))) AND
EXISTS (SELECT 'x' FROM tempdb."DBO".? T2 WHERE ((T2.PARTITION=?) AND (T1.RecId=T2.RecId)))