Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20 R7
ORDER BY FORMULA

ORDER BY FORMULA 


 

ORDER BY FORMULA ( tabela ; expressao {; >ou<}{; expressao2 ; >ou<2 ; ... ; expressaoN ; >ou<N} ) 
Parâmetro Tipo   Descrição
tabela  Tabela in Tabela na qual vai ordenar os registros
expressao  Expression in Fórmula de ordem para cada nível (pode ser de tipo Alfanumérico, Real, Inteiro, Inteiro longo, Data, Hora ou Booleano)
>ou<  Operador in Sentido da ordenação para cada nível: > ordem crescente, ou < ordem decrescente

ORDER BY FORMULA ordena (reordena) os registros da seleção atual de tabela para o processo atual. Una vez efetuada a ordenação, o primeiro registro da nova seleção atual é convertido no novo registro atual. Nota:  deve especificar a tabela. Não pode utilizar uma tabela por padrão.

Pode ordenar a seleção em um ou vários níveis. Para cada nível de ordenação, você passa uma expressão em expressao e um critério de ordenação em > ou <. Se passa o símbolo “maior que” (>) a ordem é crescente. Se passa o símbolo "menor que " (<) a ordem é decrescente. Se não especifica o critério de ordenação, a ordem por padrão é crescente.

O parâmetro formula pode ser de tipo Alfa, Real (Numérico), Inteiro, Inteiro longo, Data, Hora ou Booleano.

Aviso: Parâmetros ($1...$n) não são compatíveis em  formula

Nota: Se ORDER BY FORMULA for usado em conjunção com PRINT SELECTION, BREAK LEVEL e uma variável local, os três comandos devem ser executados, desde o mesmo método, senão um erro será gerado. Isso é porque PRINT SELECTION precisa reavaliar formula para computar as quebras de valores. Por exemplo, se executar ORDER BY FORMULA( [T1] ; [T1]f1 > $value) a partir de um método, a ordenação é feita e o método termina. Qualquer chamada subsequente a  PRINT SELECTION e BREAK LEVEL vai falhar porque $value não existe mais e  formula não pode ser reavaliada. 


Sem importar a maneira em que se define uma ordenação, se a operação de ordenação vai a demorar um certo tempo, 4D mostra automaticamente uma mensagem que contém um termômetro de progresso. Estas mensagens podem ser ativadas e desativadas utilizando os comandos  MESSAGES ON e MESSAGES OFF. Se for mostrado o termômetro de progressão, o usuário pode clicar no botão Deter para interromper a ordenação. Se a ordenação é completada corretamente, OK toma o valor 1. Do contrário, se a ordenação for interrompida, OK toma o valor 0 (zero).

4D Server
: a partir da versão 11 de 4D Server, este comando é executado no servidor, o qual otimiza sua execução. Note que quando as variáveis são chamadas diretamente na expressão, a ordenação se calcula com o valor da variável na máquina cliente.Por exemplo,  ORDER BY FORMULA([mytable];[mytable]myfield*myvariable) será executado no servidor mas com os conteúdos de minhavariavel da máquina cliente.

Nota de Compatibilidade: Até 4D Server v11, esse comando era executado na máquina cliente. Para compatibilidade reversa, essa operação é mantida em bancos de dados convertidos. Entretanto, uma propriedade de compatibilidade ou um seletor do comando SET DATABASE PARAMETER ativa execução do lado do servidor em bancos de dados convertidos.

Exemplo  

Este exemplo ordena os registros da tabela [Pessoas] em ordem descendente, baseado na longitude do sobrenome de cada pessoa. O registro da pessoa com o sobrenome mais longo será o primeiro registro da seleção atual:

 ORDER BY FORMULA([Pessoas];Length([Pessoas]Sobrenome);<)



Ver também 

ORDER BY

 
PROPRIEDADES 

Produto: 4D
Tema: Pesquisas
Número 300

Este comando modifica a variável sistema OKO comando altera o registro atualThis command can be run in preemptive processesComportamento diferente em modo remoto

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Modificado: 4D v11 SQL Release 2

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20 R7)