Tem como criar uma sql que retorne o numero de resultados de um where sem imprimi-los?
pois quando eu dou um select where é para imprimir. e para mostrar quantos sao ao inves de quais sao?
Duvida com SQL[resolvido]
11 Respostas
Ja pesquisou sobre o COUNT?
rownum?
Tente
select count(*) from tabela where condição
achei esse código, oque é customer?? é a tabela? ou é Orders que é a tabela?
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Nilsen'
tentei com rownum e foi desastroso kkkkk fiquei meio perdido em como usar where. acho que o count é melhor
o Customer é o campo…
tente a query que foi passada ali em cima… com
SELECT COUNT(*)...
Tem como criar uma sql que retorne o numero de resultados de um where sem imprimi-los?
pois quando eu dou um select where é para imprimir. e para mostrar quantos sao ao inves de quais sao?
Que tal ler um tutorial de SQL antes?
Acho que você vai achar mais produtivo.
Não deve lhe tomar nem dois dias para você aprender um monte de SQL (e não ir atrás das roubadas, que é o caso de “rownum”), só de ler o tutorial.
O Google me retornou para “SQL Tutorial” este link:
Não sei se é bom, mas como é em português já deve ser um bom começo.
estou com o use a cabeça sql, mas nao tinha algo a respeito até onde eu li. Como nao queria atropelar resolvi pesquisar mesmo usando oque eu sabia “rownum”.
Porém o resultado eu ja consegui
select count(*) from contatos where nome='Teste';
VLW!!
Só uma coisinha (que talvez possa lhe aborrecer mais tarde, mas já vou adiantando)
Normalmente o pessoal costuma fazer algo como:
pegar o resultado de select count (*) e jogar em uma variável
dimensionar um array com o valor dessa variável
ir lendo os registros retornados por um select normal (com o mesmo where) dentro desse array
Uma falha dessa lógica é a seguinte: suponha que o banco de dados seja compartilhado por várias aplicações e/ou vários usuários.
Digamos que, entre o tempo de você achar o valor do select count() e você efetivamente chamar o select normal para carregar os registros, alguém insira ou remova registros, de modo que a quantidade real de registros retornados pelo select normal fique um pouco diferente do select count().
O que ocorreria no seu programa?
- Se for mais - provavelmente vai estourar o array
- Se for menos - o array vai ficar com posições vazias.
Portanto, você não deve confiar “muito” no valor retornado por select count(*), a menos que você use transações (mas nesse caso você poderia estar travando as outras aplicaçoes, que ficariam impedidas temporariamente de inserir ou remover outros registros). Veja o que você pode fazer.
vish… entao quer dizer que, estou usando o comando, porém outros podem estar adicionando coisas lá que podem passar nos parametros que eu dei no select porém, o cadastro nao seria o ultimo registro? ele nao será o ultimo analisado?
Como eu disse, é algo bastante difícil de ocorrer, mas quando ocorre, normalmente é quando você está em casa, dormindo, de madrugada, e alguém (normalmente o chefe do chefe do chefe) lhe telefona dizendo que achou um problema - que, como de costume, é difícil de reproduzir.
De qualquer maneira, provavelmente nesse livro (que não tenho e portanto não sei se ele fala disso) você vai ver os níveis de isolação de transações, que podem servir para diminuir esse problema.