Ir para conteúdo

POWERED BY:

Arquivado

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

Wilton

Campos nulos ou brancos em uma consulta SQL

Recommended Posts

Bom dia.Em uma consulta SQL usando LEFT JOIN, alguns campos podem ser retornados em branco ou nulos se o registro não existir na tabela relacionado com LEFT JOIN. Até aí está tudo correto. Mas alguns destes campos são numéricos, e o ASP não deixa eu manipular estes campos com FormatNumber ou fazer operações com eles. Ou seja, ele não assume um valor 0 para os campos numéricos que vem em branco. E mesmo tratando eles, alguns não dão certo mesmo assim.Alguém sabe como resolver este problema no ASP? Acredito que seja uma coisa básica de uma linguagem. Será uma decepção se o ASP não conseguir resolver isso.Obrigado.Wilton

Compartilhar este post


Link para o post
Compartilhar em outros sites

dexa eu ver se entendi seu problema:Voce tem uma consulta q retorna alguns valores NULOS ou em branco certo ???se for isso talvez isso ajudeif IsNull(rs("campo_nulo")) OR IsEmpty(rs("campo_nulo")) then valor = 0else valor = CDbl(rs("campo_nulo"))end ifexplicação: eu verifico se o recordset retorna um valor nulo ou em branco, se uma destas condicoes forem verdadeira o valor eh igual a 0, senaum eu pego o valor do recordset mesmo e converto para double!:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza cara.É isso que eu faço hoje. Mas você não concorda que é um atraso de vida isso!?Eu uso outras 5 linguagens para trabalhar e em nenhuma delas preciso fazer isso. Queria ver se já no comando SQL ou por algum parametro do ASP qu já conseguia resolver isso numa tacada só.Wilton

Compartilhar este post


Link para o post
Compartilhar em outros sites

nunca utilizei mas com o WHEN do SQL, qd for "is null" ou igual a ''(vazio), eh o mesmo esquema !:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, pessoal, estou com um problema parecido com o do colega. Quando é dito:if IsNull(rs("campo_nulo")) OR IsEmpty(rs("campo_nulo")) thenvalor = 0elsevalor = CDbl(rs("campo_nulo"))end ifexplicação: eu verifico se o recordset retorna um valor nulo ou em branco, se uma destas condicoes forem verdadeira o valor eh igual a 0, senaum eu pego o valor do recordset mesmo e converto para double!"campo_nulo" é a mensagem que será escrita ou que o programa está lendo, ou ainda o nome do campo onde ele irá verificar se o valor é nulo ou em branco???Valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você tb pode utilizar a função abaixo caso sua base de dados seja SQL:Select IsNull(campo,0) from tabela......Se o registro está retornando NULL, ele coloca 0Cada banco tem a sua função que trata isso....é só dar uma pesquisada na NetAssim você evita de ficar fazendo controles em suas páginas asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, meu amigo, ainda não tá rolando 100%. Ele não tá completando os campos em branco com espaço como deveria. O que pode ser???

 

<%conexaosql() TXT_CONSULTA = request("txt_num_pesq")A1 = trim(request("A1"))US_ID = A1STP = "exec al060_pesquisa_respostas3 " _	  & "@acao='A', " _	  & "@pesq_id = '"& TXT_CONSULTA &"', " _	  & "@mod_id=  '1', " _	  & "@grupo_id = '1' "set RsResp = conn.execute(STP)%><table cellspacing="0" cellpadding="0" width="610"><%id = 0Do While NOT RsResp.EOF	US_ID	 = RsResp("US_ID")	US_NOME  = RsResp("US_NOME")	US_EMAIL = RsResp("US_EMAIL")		if id = 0 then		%>			<tr>	<td class="xtitulo"> ID </td>	<td class="xtitulo"> NOME </td>	<td class="xtitulo"> EMAIL </td>	</tr>		<% 	id = id + 1	end if	%>		<tr> 		<td class="xcelula"><%=US_ID%></td>		<td class="xcelula"><%=US_NOME%></td>						<td class="xcelula2"><%=US_EMAIL%></td>	</tr>	<%	US_NOME = trim(request("US_NOME"))	IF US_NOME = "" then	   US_NOME = " "	end If	US_EMAIL = trim(request("US_EMAIL"))	IF US_EMAIL = "" then		US_EMAIL = " "	end If		RsResp.MoveNext()				Loop	%></table>
Por favor, ao postar códigos utilize a tag

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.