como criar um contador virtual numa consulta SQL
29/08/2007
0
select CODIGO, NOME from CLIENTES
RESULTADO:
1 JOSE
2 MARIA
4 JOAO
5 CARLOS
11 JOAQUIM
gostaria que ficasse assim:
1 JOSE 1
2 MARIA 2
4 JOAO 3
5 CARLOS 4
11 JOAQUIM 5
Carlos_tedex
Post mais votado
05/09/2007
SELECT CODIGO, NOME, (row_number() over (order by CODIGO)) FROM CLIENTES
Deverá funcionar conforme deseja.
Abraços
Romulocpd
Mais Posts
29/08/2007
Carlos_tedex
foi mau cara.
utilizo o SQL7 Server
04/09/2007
Marconogueira
Criar uma tabela temporária com um campo IDENTITY para guardar o número da linha.
Ex:
CREATE TABLE #tmpTeste (codigo INTEGER, nome VARCHAR(40), linha INTEGER IDENTITY)
INSERT INTO tmpTeste SELECT Codigo, Nome FROM Clientes
SELECT * FROM tmpTeste
DROP TABLE tmpTeste
04/09/2007
Carlos_tedex
Caro marconogueira,
sua dica deve dar certo sim... mas é justamente isso que eu não queria... ter que criar uma tabela temporaria, na verdade eu queria criar esse campo na propria consulta SQL sem intermedio do Delphi... mas agradeço sua atenção.
06/09/2007
Carlos_tedex
SELECT CODIGO, NOME, (row_number() over (order by CODIGO)) FROM CLIENTES
Amigo, tentei esse comando no SQL7 e 8 e nos dois deram o mesmo erro, dizendo que essa função não é reconhecida. veja:
Server: Msg 195, Level 15, State 10, Line 1 ´row_number´ is not a recognized function name.
QQ novidade posta ai pra nois... valew
06/09/2007
Romulocpd
Daí não sei não.
06/09/2007
Emerson Nascimento
select rank=count(*), a1.CODIGO, a1.NOME from CLIENTES a1, CLIENTES a2 where a1.codigo + a1.nome >= a2.codigo + a2.nome group by a1.codigo, a1.nome order by rank
note que eu assumi que CODIGO é um campo string. se for numérico, utilize CAST para converter em string (char/varchar).
06/09/2007
Marcelo.bastos
esse é um forma que eu gosto de utilizar para gerar um código virtual. Além de ser bem simples e funcionará em qualquer banco de dados.
SELECT A.NOME,
(SELECT (COUNT(*) + 1)
FROM CLIENTES B
WHERE B.NOME < A.NOME) AS COD_VIRTUAL
FROM CLIENTES A
ORDER BY A.NOME
No caso de você tentar utilizar ROW_NUMBER() é um função nova adicionada a versão do SQL Server 2005.
Valeu!
07/09/2007
Carlos_tedex
- Pessoal, gostaria de agradecer a atenção de todos os que me ajudaram nessa consulta SQL. mas as dicas dos seguintes usuários resolveram o problema:
[b:af4631265d]
- emerson.en
- marcelo.bastos[/b:af4631265d]
valew msm... pois essa consulta será de grande utilidade num relatório que estou desenvolvendo...
Abraços...
Clique aqui para fazer login e interagir na Comunidade :)