- 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.