Partilhar via


Funções de ER VALUEINLARGE

A função VALUEINLARGE determina se a entrada especificada do tipo Int64 ou Número inteiro corresponde a qualquer valor de um item especificado na lista especificada. A função devolve um valor Booleano de VERDADEIRO se a entrada especificada corresponder ao resultado da execução da expressão especificada para pelo menos um registo da lista especificada. Caso contrário, devolve um valor Booleano de FALSO. Para compreender a diferença com a função VALUEIN, consulte a secção Notas de utilização mais adiante neste tópico.

Sintaxe

VALUEINLARGE (input, list, list item expression)

Argumentos

input: Campo

O caminho válido de um item de origem de dados do tipo Lista de registos. O valor deste item será correspondido.

list: Lista de registos

O caminho válido de uma origem de dados do tipo de dados Lista de registos.

list item expression: Expressão

Uma expressão condicional válida que aponta para ou contém um único campo da lista especificada que deve ser utilizada para a correspondência.

Valores de retorno

Booleano

O valor Booleano resultante.

Notas de utilização

Quando a entrada especificada representa um tipo Int64 ou Número inteiro de um item de origem de dados, a chamada para a qual é traduzível para uma instrução SQL direta, a lista especificada é convertida para uma tabela SQL temporária e a correspondência é efetuada na base de dados executando uma única consulta EXISTS JOIN. Caso contrário, esta função funciona como a função VALUEIN.

Quando a entrada especificada representa um item de origem de dados estruturado como um item diferente do tipo Int64 e Número inteiro, ocorre um erro durante a estruturação informando-o de que a função VALUEINLARGE não é aplicável para a expressão de ER configurada.

Quando a expressão da função VALUEINLARGE é executada e mais de uma tabela temporária é utilizada no âmbito desta execução, ocorre um erro de execução.

Exemplo

Defina as seguintes origens de dados no mapeamento de modelos:

  • A origem de dados In do tipo Registos de tabelas.
    • Esta origem de dados refere-se à tabela Intrastat.
    • A opção Transversal à empresa está definida para Não.
  • A origem de dados InMemory do tipo Campo calculado.
    • Esta origem de dados contém a expressão WHERE (In, In.Port <> "").
  • A origem de dados InFiltered do tipo Campo calculado.
    • Esta origem de dados contém a expressão FILTER (In, VALUEINLARGE(In.RecId, InMemory, InMemory.RecId).

Quando a origem de dados InFiltered é chamada no contexto da empresa DEMF, uma nova tabela temporária é criada na base de dados de aplicação, a lista de memória de códigos de identificação de registo são inseridas nesta tabela e a seguinte instrução SQL é gerada para devolver registos filtrados da tabela 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)))

Recursos adicionais

Funções de lógica

Funções VALUEIN