Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 522274
            [titulo] => Consulta E Condição Em Sql
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-06-08 19:35:57
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 378439
            [status] => A
            [isExample] => 
            [NomeUsuario] => Marcos P
            [Apelido] => 
            [Foto] => 378439_20140801115452.png
            [Conteudo] => Se você deseja fazer isso diretamente no banco, crie uma stored procedure e adapte o código utilizando a mesma ideia !

No Sql Server seria, algo como...

[code]
CREATE PROCEDURE pesquisaDADOS
AS
DECLARE @Registros INT

SET @Registros = (SELECT COUNT(fun_idade) FROM funcionarios WHERE fun_idade BETWEEN 18 AND 20)

IF @Registros > 0
BEGIN
select 'Nenhum Registro Encontrado !'
END
ELSE
BEGIN
select func_nome, sala_desc, fun_idade FROM funcionarios WHERE fun_idade BETWEEN 18 AND 20
END
GO
[/code] ) )

Consulta E Condição Em Sql

Bruno Costa
   - 08 jun 2015

Boa noite pessoal.
Queria uma ajuda com um código para o seguinte critério:
Eu possuo a tabela "funcionarios" e a tabela "salas".
Preciso fazer uma consulta dos nomes dos funcionarios (func_nome) e descrição das salas (sala_desc) dos funcionários que possuem entre 20 e 30 anos, e caso não haja nenhum registro, apresente uma mensagem indicando que nada foi encontrado. (não consegui fazer um código para comparar se foi ou não encontrado algo e exibir a mensagem)
Obrigado desde já.

Post mais votado

Marcos P
   - 08 jun 2015

Se você deseja fazer isso diretamente no banco, crie uma stored procedure e adapte o código utilizando a mesma ideia !

No Sql Server seria, algo como...

#Código

CREATE PROCEDURE pesquisaDADOS
AS
  DECLARE @Registros INT

  SET @Registros = (SELECT COUNT(fun_idade) FROM funcionarios WHERE fun_idade BETWEEN 18 AND 20)
 
  IF @Registros > 0
  BEGIN
     select 'Nenhum Registro Encontrado !'
  END
  ELSE
  BEGIN
     select func_nome, sala_desc, fun_idade FROM funcionarios WHERE fun_idade BETWEEN 18 AND 20
  END
GO

Devandroid
   - 08 jun 2015

apresentar uma mensagem??

acho q isso naum é possivel

Marcos P
   - 08 jun 2015

Bruno,

Você tem a query ?

Ela funciona, quando executada diretamente no banco de dados ?

Em caso positivo, basta tratar, do lado da aplicação, a quantidade de registros retornados pela consulta. Zero ( ou null ) indicam que não existem registros !

Em caso negativo, favor informar.

Bruno Costa
   - 08 jun 2015

Eu fiz isso para salvar a mensagem:

SET @mensagem = (SELECT 'Nenhum Registro Encontrado');

Acho que isso serviria para exibir caso nenhum registro fosse encontrado:

SELECT @mensagem;

Porém não sei quais condições posso usar, para realizar as instruções caso algum registro seja encontrado ou para exibir a mensagem caso nenhum registro seja encontrado.

Bruno Costa
   - 08 jun 2015

Marcos P,

Estou fazendo diretamente no banco de dados, o que eu preciso é de condições, mas não sei quais usar.

Por Exemplo:

SET @mensagem = (SELECT 'Nenhum Registro Encontrado');
SET @contador = 0;
SET @contador = (SELECT COUNT(fun_idade) FROM funcionarios WHERE fun_idade BETWEEN 18 AND 20);

"SE" @contador !=0 (Realizar As Instruções De Select Que Eu Citei No Post)
"SE NÃO" (Exibir A Mensagem Armazenada Na Variável @mensagem)

Precisava de algo que fizesse tipo isso.

Marcos P
   - 08 jun 2015

Essa implementação é parcial e deveria ser inclusa em uma stored procedure, para retorno à aplicação.

De qualquer modo, isso não é necessário...

Execute a query simples DO LADO DA APLICAÇÃO e trate a quantidade de registros retornados !

Algo como...

#Código

query = ( select func_nome, sala_desc from... )
execute query
se (query.record_count = 0)
  então... Mensagem(Não existem registros ! )
  senão... Mensagem(Existem registros ! )
fimse


Fiz um pseudo-código qualquer, porque você não especificou a linguagem que está utilizando no desenvolvimento.