none
StoredProcedure com valor NULL RRS feed

  • Pergunta

  • Boa noite, 

    alguém tem alguma sugestão?

    Na tabela Produto_Servico  da SP abaixo eu tenho registros com o valor NULL no campo cod_Higiene_Apresentacao.

    O fato é que quando eu tento consultar registros após os campos cod_Higiene_Apresentacao com o valor NULL retorna vazio.

    Esta tabela contem 278 registros os 118 primeiros contém valor no campo  cod_Higiene_Apresentacao do 119 até o 178 são NULL e do 179 até o 199 há valores e assim por diante.

    Por exemplo, se eu executo a SP com um cod_Higiene_Apresentacao do registro 199 retorna vazio.

    ALTER PROCEDURE [dbo].[spDadosProdutoHigiene]
    	@cod_Higiene_Apresentacao AS INT
    AS
    BEGIN	 
    	select data_Fabricacao, data_Vencimento, lote_Partida, nome, cod_Higiene_Apresentacao
        From Produto_Servico 
        Where cod_Higiene_Apresentacao = @cod_Higiene_Apresentacao and cod_Prod_Serv_Cat = 2
             
    END
    

    terça-feira, 4 de agosto de 2015 23:35

Respostas

  • Boa noite.

    Wilson, acredito que o que importa nesse caso é o valor na linha em específico.

    O valor existente nas outras linhas não vão fazer nenhuma diferença.

    Será que não é a segunda condição (cod_Prod_Serv_Cat = 2) que está fazendo com que o resultado seja vazio?


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:17
    • Não Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:26
    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:26
    quarta-feira, 5 de agosto de 2015 00:02
  • Concordo com o comentário do "gapimex" abaixo... pode ser esta condição...

    Fabio Rosa.

    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:17
    quarta-feira, 5 de agosto de 2015 00:16

Todas as Respostas

  • Olá Wilson,

    Deixa eu ver se entendi...

    Quando você faz a consulta aparecem somente os primeiros registros que não tem Null no campo cod_HigieneApresentacao, e os que vem depois dos NUll, não aparece é isso?

    Se você colocar um COALESCE na coluna será que não resolve? Assim:

    Where COALESCE(cod_Higiene_Apresentacao, 0) = @cod_Higiene_Apresentacao and cod_Prod_Serv_Cat = 2
    O COALESCE faz com que se o valor é nulo, que seja utilizado o valor passado após a vírgula, neste caso coloquei 0 (zero). Testa aí e vê se funciona.

    Abraço,


    Fabio Rosa.

    terça-feira, 4 de agosto de 2015 23:56
  • Boa noite.

    Wilson, acredito que o que importa nesse caso é o valor na linha em específico.

    O valor existente nas outras linhas não vão fazer nenhuma diferença.

    Será que não é a segunda condição (cod_Prod_Serv_Cat = 2) que está fazendo com que o resultado seja vazio?


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:17
    • Não Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:26
    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:26
    quarta-feira, 5 de agosto de 2015 00:02
  • Obrigado pelo retorno Fabio,

    ainda não rolou,  eu usei o valor 55 para o cod_Higiene_Apresentacao que está no id=1 e no id=278, que entre estes registro contem NULL, o retorno foi apenas do primeiro registro.

    select data_Fabricacao, data_Vencimento, lote_Partida, nome, cod_Higiene_Apresentacao
        From Produto_Servico 
        Where COALESCE(cod_Higiene_Apresentacao, 0) = 55 and cod_Prod_Serv_Cat = 2
    

    quarta-feira, 5 de agosto de 2015 00:07
  • Concordo com o comentário do "gapimex" abaixo... pode ser esta condição...

    Fabio Rosa.

    • Marcado como Resposta Wilson Boris quarta-feira, 5 de agosto de 2015 00:17
    quarta-feira, 5 de agosto de 2015 00:16
  • Valeu GIGANTES, obrigado. É isso mesmo.
    quarta-feira, 5 de agosto de 2015 00:18