Array
(
)

Ajuda em Pesquisa SQL

Ffsombra
   - 04 ago 2004

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:

#Código


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:

#Código
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:

#Código
SELECT COUNT(*) FROM TABELA WHERE DESTAB < ´M¬´


Será que existe alguma solução para isto???


Welington
   - 04 ago 2004

Faça como no código abaixo:

SELECT COUNT(*) FROM TABELA WHERE NOT (DESTAB LIKE ´M¬´)

Eu testei este código e funcionou


Motta
   - 04 ago 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´


Emerson
   - 05 ago 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 (¬)


Ffsombra
   - 06 ago 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!!!