| 4D v13.4ORDER BY FORMULA | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 ORDER BY FORMULA 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ORDER BY FORMULA ( tabela {; expressao {; >ou<}}{; expressao2 ; >ou<2 ; ... ; expressaoN ; >ou<N} ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| tabela | Tabela |   | Tabela na qual vai ordenar os registros | |||||
| expressao | Expression |   | Fórmula de ordem para cada nível (pode ser de tipo Alfanumérico, Real, Inteiro, Inteiro longo, Data, Hora ou Booleano) | |||||
| >ou< | Operador |   | 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.
Note que 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 expressao pode ser de tipo Alfa, Real (Numérico), Inteiro, Inteiro longo, Data, Hora ou Booleano.
 
 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 outro lado,  este princípio não aplica às fórmulas utilizando  métodos que, em si mesmos, chamem variáveis (os valores das variáveis  são avaliados no servidor). Neste contexto, pode ser recomendável  utilizar o atributo do método "Execute on server" que permite executar  um método no servidor enquanto passa os parâmetros (variáveis) (ver o  Manual de Desenho).
 
 Nas versões anteriores de 4D Server, este comando se executava nas  máquinas clientes. Por compatibilidade, este funcionamento se conserva  nos bancos de dados convertidos à versão 11. Uma preferência de  compatibilidade e um seletor do comando SET DATABASE PARAMETER permitem  adotar o funcionamento da versão 11 (execução no servidor) nestes bancos  de dados.   
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);<)
	Produto: 4D
	Tema: Pesquisas
	Número 
        300
        
        
        
	
        
        

 
        
	Modificado: 4D v11 SQL Release 2