Funzione ER VALUEINLARGE
La funzione VALUEINLARGE
determina se l'input specificato di tipo Int64 o Intero corrisponde a qualsiasi valore di una voce specificata nell'elenco specificato. La funzione restituisce un valore BooleanoTRUE se l'input specificato corrisponde al risultato dell'esecuzione dell'espressione specificata per almeno un record dell'elenco specificato. In caso contrario, restituisce il valore BooleanoFALSE. Per capire la differenza con la funzione VALUEIN
, vedi la Nota di utilizzo più avanti in questo articolo.
Sintassi
VALUEINLARGE (input, list, list item expression)
Argomenti
input
: Campo
Il percorso valido di un elemento origine dati del tipo Elenco di record. Il valore di questa voce verrà associato.
list
: Elenco di record
Il percorso valido di un'origine dati del tipo di dati Elenco di record.
list item expression
: Espressione
Un'espressione condizionale valida che indica o contiene un singolo campo dell'elenco specificato da utilizzare per la corrispondenza.
Valori restituiti
Boolean
Il valore Booleano risultante.
Note sull'utilizzo
Quando l'input specificato rappresenta un tipo Int64 o Intero di un elemento dell'origine dati, la chiamata è traducibile in un'istruzione SQL diretta, l'elenco specificato viene convertito in una tabella SQL temporanea e la corrispondenza viene eseguita nel database eseguendo una singola query EXISTS JOIN
. Altrimenti, questa funzione funziona come la funzione VALUEIN
.
Quando l'input specificato rappresenta un elemento dell'origine dati progettato come elemento diverso dal tipo Int64 e Intero, si verifica un errore in fase di progettazione che informa che la funzione VALUEINLARGE
non è applicabile per l'espressione ER configurata.
Quando l'espressione della funzione VALUEINLARGE
viene eseguita e viene utilizzata più di una tabella temporanea nell'ambito di questa esecuzione, si verifica un errore di runtime.
Esempio
Definire le origini dati seguenti nel mapping di modello:
- L'origine dati In del tipo Record di tabella.
- Questa origine dati fa riferimento alla tabella Intrastat.
- L'opzione Interaziendale è impostata su No.
- L'origine dati InMemory del tipo Campo calcolato.
- Questa origine dati contiene l'espressione
WHERE (In, In.Port <> "")
.
- Questa origine dati contiene l'espressione
- L'origine dati InFiltered del tipo Campo calcolato.
- Questa origine dati contiene l'espressione
FILTER (In, VALUEINLARGE(In.RecId, InMemory, InMemory.RecId)
.
- Questa origine dati contiene l'espressione
Quando l'origine dati InFiltered è chiamata nell'ambito della società DEMF, viene creata una nuova tabella temporanea nel database dell'applicazione, l'elenco dei codici di identificazione dei record raccolti in memoria viene inserito in questa tabella e viene generata la seguente istruzione SQL per restituire i record filtrati della tabella 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)))