ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Existe uma forma de ordernar cfe preciso?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qua Jan 20, 2021 5:32 pm    Assunto: Existe uma forma de ordernar cfe preciso? Responder com Citação

Preciso um order by no firebird assim?

Tenho um campo numerico que esta assim
1
2
3
1000
2000
2100
2200
3000
3100
10000
20000
20001
20002
20100
20101
30000
etc..

Tem como organizar embaixo dos seus numeros
1
1000
10000
2
2000
20000
20001
20002
2100
20100
20101
2200
3000
30000

Tem como fazer isso? Ou alguma forma nem que tenha que criar outro campo para auxiliar nessa ordem?
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qua Jan 20, 2021 5:49 pm    Assunto: Responder com Citação

Experimente fazer um Cast do campo numérico para varchar no Order By para ver se é obtido o resultado esperado. Ex:

Código:
order by cast(CampoNumerico as varchar(20))


Espero que ajude


Editado pela última vez por imex em Qui Set 16, 2021 5:24 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 21, 2021 8:29 am    Assunto: Responder com Citação

imex escreveu:
Experimente fazer um Cast do campo numérico para varchar no Order By para ver se é obtido o resultado esperado. Ex:

Código:
order by cast(CampoNumerico as varchar(20))


Espero que ajude


Bom dia Imex, quase deu

Ficou assim o resultado
Código:
     1 
10.000 
     2 
 2.000 
20.000 
20.001 
20.002 
20.003 
20.004 
20.100 
20.101 
20.102 
20.103 
20.104 
20.105 
20.106 
20.107 
20.200 
20.300 
 2.100 
 2.200 
 2.300 
     3 
 3.000 
30.000 
30.001 
30.002 
30.003 
30.100 
30.101 
30.102 
30.104 
30.105 
30.106 
30.107 
30.108 
30.109 
30.110 
30.111 
 3.100

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 21, 2021 8:32 am    Assunto: Responder com Citação

Mais eu vou mudar aqui os numeros pra ver se fica como preciso

Logo volto a postar o resultado.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 21, 2021 8:38 am    Assunto: Responder com Citação

Deu certo assim Imex
Código:
     1 
10.000 
     2 
 2.000 
20.000 
20.001 
20.002 
20.003 
20.004 
20.106 
 2.100 
21.000 
21.001 
21.002 
21.003 
21.004 
21.005 
21.006 
 2.200 
22.000 
 2.300 
23.000 
     3 
 3.000 
30.000 
30.001 
30.002 
30.003 
 3.100 
31.000 
31.001 
31.002 
31.003 
31.004 
31.005 
31.006 
31.007 
31.008 
31.009 
31.010 
31.011


Ficou otimo. Obrigado
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 21, 2021 2:03 pm    Assunto: Responder com Citação

Para fazer os selects cfe where é assim mesmo?
De 1 a 999
Código:
select tag from menu
where tag = substring(tag from 1 for 3)
order by cast(tag as varchar(20))


De 1.000 a 9.999
Código:
select tag from menu
where tag > substring(tag from 1 for 3)
and tag = substring(tag from 1 for 4)
order by cast(tag as varchar(20))


De 10.000 a 99.999
Código:
select tag from menu
where tag > substring(tag from 1 for 3)
and tag > substring(tag from 1 for 4)
order by cast(tag as varchar(20))

_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Qui Jan 21, 2021 2:21 pm    Assunto: Responder com Citação

Não sei se entendi corretamente, mas se o campo tag é numérico, acho que você pode utilizar o Between:

Código:
where tag between 1 and 999


Espero que ajude
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Qui Jan 21, 2021 2:25 pm    Assunto: Responder com Citação

imex escreveu:
Não sei se entendi corretamente, mas se o campo tag é numérico, acho que você pode utilizar o Between:

Código:
where tag between 1 and 999


Espero que ajude
Da também, eu tinha esquecido do between, mais criei outro campo chamado nivel que fica mais facil de controlar.

Obrigado
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB