Função SELECT

SELECT é uma função complexa que combina, filtra e reformata mensagens complexas e dados de bancos de dados.

Sintaxe

  • Source é uma referência a um campo, matriz de campos ou tabela de banco de dados
  • Alias é um nome de variável temporário
  • Condition é qualquer expressão booleana
  • Target é um caminho relativo

SELECT combina, filtra e reformata mensagens complexas e dados de bancos de dados. É o método normal da transformação de mensagem.

Não há diferenças sintáticas ou semânticas entre um SELECT que opera em um banco de dados e um que opere em uma mensagem. Em particular:
  • As expressões da cláusula SELECT podem utilizar qualquer um dos operadores e funções do intermediário em qualquer combinação. Podem fazer referência às colunas das tabelas, campos de mensagem e nomes de correlações declarados pelos SELECTs que os contêm e quaisquer outras variáveis ou constantes declaradas dentro do escopo.
  • Suas cláusulas AS correspondentes podem conter caminhos de várias partes. Por exemplo, A.B.C, incluindo especificadores de tipo de campo tais como A.B.(XML.Attribute)C), expressões de nome (p. ex.: A.B.{var}) e índices (p. ex.: A.B.C[i]).

    Quaisquer expressões nestes caminhos podem utilizar qualquer um dos operadores e funções do intermediário em qualquer combinação. As expressões podem fazer referência às colunas das tabelas, campos de mensagem e nomes de correlações declarados pelos SELECTs que os contêm e quaisquer variáveis ou constantes declaradas.

  • A cláusula FROM pode conter várias referências de banco de dados, várias referências de mensagens ou um misto dos dois. Você pode unir tabelas com tabelas, mensagens com mensagens ou tabelas com mensagens, com as seguintes restrições:
    • As expressões da cláusula FROM do banco de dados, por exemplo, Database.Schema1.Table1, não podem conter expressões de nenhum tipo. Você não pode calcular um nome de tabela ou esquema em tempo de execução.
    • Se a cláusula FROM referir-se a mensagens e tabelas, as tabelas deverão preceder as mensagens.
  • A expressão da cláusula WHERE também pode utilizar qualquer um dos operadores e funções do intermediário em qualquer combinação. As expressões podem fazer referência às colunas das tabelas, campos de mensagem e nomes de correlações declarados pelos SELECTs que os contêm e quaisquer variáveis ou constantes declaradas.No entanto, tenha em mente o seguinte:
    • O intermediário trata expressões com a cláusula WHERE examinado a expressão e decidindo se a expressão inteira pode ser avaliada pelo banco de dados.

      Se puder, ela será fornecida ao banco de dados. A fim de ser avaliada pelo banco de dados, ela deve utilizar somente as funções e os operadores suportados pelo banco de dados.

      Contudo, ela pode ainda fazer referência a campos de mensagem, nomes de correlações declarados por SELECTs que os contêm e quaisquer outras variáveis ou constantes declaradas dentro do escopo.

    • Se a expressão inteira não puder ser avaliada pelo banco de dados, o intermediário procura operadores AND de nível superior e examina cada subexpressão separadamente.

      Em seguida, ele tentará fornecer ao banco de dados essas subexpressões que pode avaliar, deixando o intermediário avaliar o restante.

    É necessário estar ciente dessa situação por duas razões:
    • Aparentemente, as alterações comuns em expressões da cláusula WHERE podem ter grandes efeitos no desempenho. Você pode determinar a porcentagem da expressão que foi fornecida ao banco de dados, examinando um rastreio do usuário.
    • Algumas funções dos bancos de dados exibem diferenças sutis de comportamento em comparação com as funções do intermediário.
Utilize SELECT para:
  • Reformatar mensagens de forma abrangente
  • Acessar tabelas do banco de dados
  • Criar uma matriz de saída que é um subconjunto de uma matriz de entrada
  • Criar uma matriz de saída que contenha apenas os valores de uma matriz de entrada
  • Contar o número de entradas em uma matriz
  • Selecionar o valor mínimo ou máximo de um número de entradas em uma matriz
  • Somas os valores em uma matriz
ESQL SELECT se difere do banco de dados SQL SELECT nas seguintes maneiras:
  • O ESQL pode produzir dados de resultado estruturados em árvore
  • O ESQL pode aceitar matrizes em cláusulas SELECT
  • O ESQL possui THE e ITEM
  • O ESQL não possui nenhum SELECT ALL
  • O ESQL não possui nenhum SELECT DISTINCT
  • O ESQL não possui nenhum GROUP BY ou HAVING
  • O ESQL não possui nenhuma função de coluna AVG

Para obter informações sobre como utilizar a função SELECT, consulte abaixo.

Conceitos relacionados
ESQL

Tarefas relacionadas
Desenvolvendo ESQL
Transformando uma Mensagem XML Simples
Transformando uma Mensagem XML Complexa
Retornando um Valor Escalar em uma Mensagem XML
Interagindo com Bancos de Dados de Usuários

Referências relacionadas
Preferência de Sintaxe
Funções Complexas ESQL