Select com numero sequencial
14/04/2011
0
Select ***, ID, NOME FROM TABELA
Resultado
1, 0, maria
2, 1, joao
3, 2, bruno
........
Eduardo Richeli
Post mais votado
Mais Posts
19/04/2011
Eduardo Richeli
19/04/2011
Gustavo Bretas
Você ja pensou em criar um procedure? Talvez não seja a melhor solução, mas no seu caso eu acho que é a única... rs!
Pensa ae!
19/04/2011
Wilson Junior
Espero ter colaborado.
19/04/2011
Anderson
select
rdb$get_context('USER_TRANSACTION', 'row#') as NUMERO,
rdb$set_context('USER_TRANSACTION', 'row#',
coalesce(cast(rdb$get_context('USER_TRANSACTION', 'row#') as integer), 0) + 1),
NOME from CIDADE;
Defina no componente de visualização, quais campos devem ficar visíveis. Use o campo NUMERO somente para exibição (não serve para ser utilizado como campo chave).
Abraços,
Anderson:.
20/04/2011
Eduardo Richeli
20/04/2011
Eduardo Richeli
[]'s
fim um sp porem ocasiona o mesmo problema
27/04/2011
Emerson Nascimento
select
(select count(c2.id_cargahoraria)
from cargahoraria c2
where coalesce(c2.entrada,'01.01.1900') <= coalesce(c1.entrada,'01.01.1900')) ordem,
c1.*
from cargahoraria c1
order by c1.entrada
nesse caso eu ordenei por entrada e fiz a comparacao por entrada.
se fosse por nome:
select
(select count(c2.id_cliente)
from cliente c2
where c2.nome <= c1.nome and c2.id_cliente <= c1.id_cliente) ordem,
c1.*
from cliente c1
order by c1.nome, c1.id_cliente
note que no caso acima usei dois campos para ordenação, pois posso ter clientes homônimos.
para que não haja perda de performance - por conta da sub-select - é melhor que haja índices criados para os campos usados como referência para a geração do campo virtual ordem.
27/04/2011
Eduardo Richeli
Quase foi la
Ficou da seguinte forma
ORDEM ID NOME
1 2 NOME1
1 3 NOME2
1 7 NOME3
1 8 NOME5
1 9 NOME6
1 10 NOME7
isto e repetiu o campo ordem, tentei de outras maneiras, mas deu no mesmo...
27/04/2011
Eduardo Richeli
select
rdb$get_context('USER_TRANSACTION', 'row#') as NUMERO,
rdb$set_context('USER_TRANSACTION', 'row#',
coalesce(cast(rdb$get_context('USER_TRANSACTION', 'row#') as integer), 0) + 1),
NOME from CIDADE;
30/08/2013
Carlo Ferreira
--SETAR UMA VARIÁVEL DE CONTEXTO COM O VALOR 0
SELECT
RDB$SET_CONTEXT(USER_SESSION, SEQ_TMP, 0)
FROM RDB$DATABASE
--UTILIZAR A VARIÁVEL DE CONTEXTO COMO SEQUENCIAL NA PRIMEIRA COLUNA E INCREMENTAR NA SEGUNDA COLUNA
--TERCEIRA E QUARTA COLUNAS SÃO CAMPOS DA TABELA SELECIONADA
SELECT
CAST(TRUNC(CAST(RDB$GET_CONTEXT(USER_SESSION, SEQ_TMP) AS NUMERIC(15,2))) AS INTEGER) SEQUENCIAL,
RDB$SET_CONTEXT(USER_SESSION, SEQ_TMP, CAST(CAST(RDB$GET_CONTEXT(USER_SESSION, SEQ_TMP) AS NUMERIC(15,2)) + 1 AS VARCHAR(25))) INCREMENTANDO,
CODIGO, CIDADE
FROM CIDADES
ORDER BY CIDADE
Clique aqui para fazer login e interagir na Comunidade :)