Ajuda em Pesquisa SQL
Pessoal...
Preciso fazer uma consulta em um campo string. Até aí tudo bem, só que preciso da quantidade de registros que não atendem a esta consulta e que estão posicionados anteriormente ao resultado desta consulta. Calma, calma... tá parecendo muito complicado, mas vou exemplificar...
Suponhamos que temos uma tabela com dois campos:
CODTAB integer PK
DESTAB varchar(20)
O conteúdo desta tabela:
Como podem ver, a tabela está ordenada por ordem de DESTAB... Quando executo a seguinte instrução:
É retornado apenas o registro 4 - MARIO... O que preciso é saber quantos registros existem antes deste registro que esta consulta me retornou...
Testei e queria que existisse algum meio de fazer algo similar a isto:
Será que existe alguma solução para isto???
Preciso fazer uma consulta em um campo string. Até aí tudo bem, só que preciso da quantidade de registros que não atendem a esta consulta e que estão posicionados anteriormente ao resultado desta consulta. Calma, calma... tá parecendo muito complicado, mas vou exemplificar...
Suponhamos que temos uma tabela com dois campos:
CODTAB integer PK
DESTAB varchar(20)
O conteúdo desta tabela:
CODTAB - DESTAB 3 - ANDRE 5 - CARLOS 1 - FABIO 2 - JOSE 4 - MARIO 6 - PEDRO
Como podem ver, a tabela está ordenada por ordem de DESTAB... Quando executo a seguinte instrução:
SELECT * FROM TABELA WHERE DESTAB LIKE ´M¬´
É retornado apenas o registro 4 - MARIO... O que preciso é saber quantos registros existem antes deste registro que esta consulta me retornou...
Testei e queria que existisse algum meio de fazer algo similar a isto:
SELECT COUNT(*) FROM TABELA WHERE DESTAB < ´M¬´
Será que existe alguma solução para isto???
Ffsombra
Curtidas 0
Respostas
Welington
04/08/2004
Faça como no código abaixo:
SELECT COUNT(*) FROM TABELA WHERE NOT (DESTAB LIKE ´M¬´)
Eu testei este código e funcionou
SELECT COUNT(*) FROM TABELA WHERE NOT (DESTAB LIKE ´M¬´)
Eu testei este código e funcionou
GOSTEI 0
Motta
04/08/2004
o not like não atende pois pega os maiores que M ... pqrs...
SELECT *
FROM TABELA WHERE NOME < ´MARIO´
ACHO QUE FUNCIONA, PORÉM DEPENDE DA FORMA COMO O BD TRATA STRINGS, DEMANDA UMA PESQUISA NO ´MANUEL´
SELECT *
FROM TABELA WHERE NOME < ´MARIO´
ACHO QUE FUNCIONA, PORÉM DEPENDE DA FORMA COMO O BD TRATA STRINGS, DEMANDA UMA PESQUISA NO ´MANUEL´
GOSTEI 0
Emerson Nascimento
04/08/2004
tente assim:
select count(destab) from TABELA where destab < ´M´
a condição da busca é o mesmo conteúdo que você solicitou na pesquisa princípal sem o curinga (¬)
select count(destab) from TABELA where destab < ´M´
a condição da busca é o mesmo conteúdo que você solicitou na pesquisa princípal sem o curinga (¬)
GOSTEI 0
Ffsombra
04/08/2004
Exato emerson.en!!! Tinha testado antes e não tinha funcionado, mas tava cometendo um erro idiota, agora tá tudo ok!!!
Obrigado Motta e Welington!!!
Obrigado Motta e Welington!!!
GOSTEI 0