Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Sex Abr 03, 2020 11:23 am Assunto: [Resolvido]prioridade no primeiro campo da pesquisa |
|
|
Pessoal tem essa consulta que quero fazer, veja
select first 1 * from tabela
where (CODIGO = :CODIGO) or CODBARRA = :CODBARRA
só que eu queria que o campo CODIGO fosse a prioridade e sempre ele pegar a prioridade no campo CODBARRA eu queria por exemplo fosse o codigo de um determinado 000362 é cimento e o codigobarra da dobradisse é 000362 pois ele tra trazendo sempre dobradisse, queria que obedece primeiro o código
Editado pela última vez por nildglan em Sex Abr 03, 2020 12:10 pm, num total de 1 vez |
|
Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Abr 03, 2020 12:00 pm Assunto: |
|
|
Bom dia,
Seguem 2 sugestões para testes:
Código: | with CTE_Union as
(
select *, 1 as Prioridade
from tabela
where CODIGO = :CODIGO
union all
select *, 2
from tabela
where CODBARRA = :CODBARRA
)
select first 1 *
from CTE_Union
order by Prioridade |
Código: | select first 1 *
from tabela
where CODIGO = :CODIGO or CODBARRA = :CODBARRA
order by case when CODIGO = :CODIGO then 1 else 2 end |
Se houver um índice na tabela com o campo Codigo e outro com o campo CodBarra, é provável que a primeira versão tenha um desempenho melhor.
Espero que ajude
Editado pela última vez por imex em Qui Set 16, 2021 8:54 am, num total de 1 vez |
|
Voltar ao Topo |
|
 |
nildglan Colaborador


Registrado: Sábado, 16 de Agosto de 2008 Mensagens: 1564 Localização: Goianésia do Pará
|
Enviada: Sex Abr 03, 2020 12:06 pm Assunto: |
|
|
vc é o cara imex, usei a segunda |
|
Voltar ao Topo |
|
 |
|