Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

diegolauro

Problema IS NULL e IS NOT NULL

Recommended Posts

Bom pessoal, eu sei que é uma dúvida meio ridícula pra vcs mas eu precisava de uma força:Meu SELECT com IS NULL e IS NOT NULL não funciona!Vou postar aqui pra vcs darem uma olhada:SELECT * FROM como_voce_e WHERE cd_cadastro = " &session("usuario")& " AND cd_servico="&session("servico") & " AND questao1 is not null AND questao2 is not null AND questao3 is not null AND questao4 is not null AND questao5 is not null AND questao6 is not null AND questao7 is not null AND questao8 is not null AND questao9 is not null AND questao10 is not null AND questao11 is not null AND questao12 is not null AND questao13 is not null AND questao14 is not null AND questao15 is not nullSELECT * FROM como_voce_e WHERE cd_cadastro = " &session("usuario")& " AND cd_servico="&session("servico") & " AND questao1 is null AND questao2 is null AND questao3 is null AND questao4 is null AND questao5 is null AND questao6 is null AND questao7 is null AND questao8 is null AND questao9 is null AND questao10 is null AND questao11 is null AND questao12 is null AND questao13 is null AND questao14 is null AND questao15 is null AND arquivo is nullEstou usando o SQL Server 2000Obrigado pela antenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Com este SELECT:

SELECT * FROM como_voce_e WHERE cd_cadastro = " &session("usuario")& " AND cd_servico="&session("servico") & " AND questao1 is not null AND questao2 is not null AND questao3 is not null AND questao4 is not null AND questao5 is not null AND questao6 is not null AND questao7 is not null AND questao8 is not null AND questao9 is not null AND questao10 is not null AND questao11 is not null AND questao12 is not null AND questao13 is not null AND questao14 is not null AND questao15 is not null

Só irá retorna dados se todos as 15 questões estiverem com o conteúdo NULL. Caso algumas das questão diferente de NULL não retornará nada.

 

O que você deseja na verdade? Poderia ser mais claro?

 

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu preciso colocar os seguintes Status no programa:Vazio = Quando todas as questões foram nulasConcluído = Quando todas as questões estiverem preenchidasSe não for nenhum nem outro daí eu vou ter o Status iniciado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Segue um exemplo simples:

DECLARE  @TMP TABLE (COD INT,QUESTAO1 CHAR(1),QUESTAO2 CHAR(1),QUESTAO3 CHAR(1),QUESTAO4 CHAR(1),QUESTAO5 CHAR(1))INSERT INTO @TMP 	(COD,QUESTAO1 ,QUESTAO2 ,QUESTAO3 ,QUESTAO4 ,QUESTAO5) VALUES						(1,'A' ,NULL , NULL ,'F' ,'D' ) INSERT INTO @TMP 	(COD,QUESTAO1 ,QUESTAO2 ,QUESTAO3 ,QUESTAO4 ,QUESTAO5) VALUES						(2,'A' ,'E' , 'B' ,'F' ,'D' ) INSERT INTO @TMP 	(COD,QUESTAO1 ,QUESTAO2 ,QUESTAO3 ,QUESTAO4 ,QUESTAO5) VALUES						(3,NULL ,NULL , NULL ,NULL ,NULL ) INSERT INTO @TMP 	(COD,QUESTAO1 ,QUESTAO2 ,QUESTAO3 ,QUESTAO4 ,QUESTAO5) VALUES						(4,NULL ,NULL , NULL ,NULL ,'D' ) ----SELECIONA TODAS A QUESTÕES PREENCHIDAS--SELECT * FROM @TMPWHERE  QUESTAO1 IS NOT NULL AND QUESTAO2 IS NOT NULL AND QUESTAO3 IS NOT NULL AND QUESTAO4 IS NOT NULL AND QUESTAO5 IS NOT NULL ---- OU ASSIM--SELECT * FROM 	@TMPWHERE	QUESTAO1 + QUESTAO2 + QUESTAO3 + QUESTAO4 + QUESTAO5 IS NOT NULL ------SELECIONA TODAS A QUESTÕES NÃO PREENCHIDAS--SELECT * FROM @TMPWHERE	QUESTAO1 IS NULL 		AND QUESTAO2 IS NULL 		AND QUESTAO3 IS NULL 		AND QUESTAO4 IS NULL 		AND QUESTAO5 IS NULL ----OU ASSIM--SELECT * FROM @TMPWHERE	QUESTAO1 + QUESTAO2 + QUESTAO3 + QUESTAO4 + QUESTAO5 IS NULL
Para maiores informações dê um lida no post: http://forum.imasters.com.br/index.php?showtopic=225194

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, ainda tive problemas:Dá uma olhada:Select:Select * from [como_voce_e] WHERE questao1 + questao2 IS NULLResposta:Invalid operator for data type. Operator equals add, type equals text.Select:SELECT * FROM [como_voce_e]WHERE QUESTAO1 IS NOT NULL AND QUESTAO2 IS NOT NULL AND QUESTAO3 IS NOT NULL AND QUESTAO4 IS NOT NULL AND QUESTAO5 IS NOT NULL Resposta:questao1 | questao2Resposta1 | Resposta2Resposta1 | Resposta2Resposta1 | No campo questao2, terceira linha eu tenho um campo vazio q ele me retorna!Tô desesperado com isso pq eu tenho q entregar o projeto amanhã e eu num sei o q faço. Alguém me ajuda?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o tipo do campo QUESTAO2? Char,varchar qual?

 

Vamos resolver a parada.

 

você rodou o exemplo que postei? Rodei aqui e deu certo!

 

O bd q você esta utilizando é SQL Server?

 

você ja trocou o AND por OR?

 

É pq sinceramente não estou entendo mto bem o que vdc quer. Em um post você disse que queria trazer todas nulas e todas as não nulas. E foi o q meu exemplo fez. Agora no último post você disse:

No campo questao2, terceira linha eu tenho um campo vazio q ele me retorna!

Dai confunde um pouco!

 

Pq não é para ser tão complicado separar todas as nula de todas não nulas!

 

t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poxa eu vi a m***** que deu aqui.Foi o seguinte eu pensei q os campos estavam nulos mas Null é diferente de '' (vazio)Então o q aconteceu, fui buscar por null em um campo que está na verdade vazio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.