Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-07-2007
crc crc is offline
Registrado
 
Registrado: may 2007
Posts: 7
Poder: 0
crc Va por buen camino
Problema con Valores Null

Estimados:


Alguien sabe como eliminar los Null de una Campo con una Query??
o alguna manera de saber si el dato dentro de un campo contiene alguna null???

por ejemplo:
Account_code
104111080XXX

xxx = null

he tratado de usar el update con el like- null, pero no toma el registro indicado ya que no cumple con la seccion.
este problema fue originado por el programa y se supone que Nunca deberia agregar Null a un dato.

Agradecere mucho sus comentarios ya que cualquier idea ayuda.

de ante mano, muchas gracias.
Responder Con Cita
  #2  
Antiguo 12-07-2007
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código SQL [-]
Select *
From Clientes

Where MiCampo Is Null

Where MiCAmpo Is Not Null

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 12-07-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
En sql Server tienes la función isnull, donde el primer parámetro es el campo que quieres verificar y el segundo parámetro es el valor que el campo deberá tomar en caso de ser nulo:

Código SQL [-]
Select isnull(Precio, 0)
from Articulos

tambien puedes definir en tu base de datos que el campo no acepte campos nulos; así cuando el programa trate de guardar un dato nulo, te saltará una excepción que puedes capturar y tratar como más te convenga.
__________________

Responder Con Cita
  #4  
Antiguo 12-07-2007
crc crc is offline
Registrado
 
Registrado: may 2007
Posts: 7
Poder: 0
crc Va por buen camino
Cita:
Empezado por marcoszorrilla
Código SQL [-]
Select *
From Clientes
Where MiCampo Is Null


Where MiCAmpo Is Not Null

Un Saludo.
Esto sirve cuando el campo es nulo completamente pero este no es mi caso.

mi campo es de largo 10...
Cuenta char(10) y el valo que tiene es '1234567NNN' donde las 3 N correspondenden a 3 Nulos.

Yo quiero saber si existe alguna condicion o manera de saber que campos tienen parte de su informacion con Nulos.


Muchas gracias,
Responder Con Cita
  #5  
Antiguo 12-07-2007
crc crc is offline
Registrado
 
Registrado: may 2007
Posts: 7
Poder: 0
crc Va por buen camino
Cita:
Empezado por ContraVeneno
En sql Server tienes la función isnull, donde el primer parámetro es el campo que quieres verificar y el segundo parámetro es el valor que el campo deberá tomar en caso de ser nulo:


Código SQL [-]
Select isnull(Precio, 0)
from Articulos





tambien puedes definir en tu base de datos que el campo no acepte campos nulos; así cuando el programa trate de guardar un dato nulo, te saltará una excepción que puedes capturar y tratar como más te convenga.
Mi BD es Oracle asi que probe con el NVL, pero el NVL es para cuando todo el Campo es Nulo y no solo parte como es mi casi.

una vez que cambiemos estos datos se realizara el cambio para que la base de datos no permita Nulos.
Responder Con Cita
  #6  
Antiguo 12-07-2007
Avatar de gmontes
gmontes gmontes is offline
Miembro
 
Registrado: jul 2004
Ubicación: Culiacán, Sinaloa, México
Posts: 668
Poder: 20
gmontes Va por buen camino
Cita:
Empezado por crc
Esto sirve cuando el campo es nulo completamente pero este no es mi caso.

mi campo es de largo 10...
Cuenta char(10) y el valo que tiene es '1234567NNN' donde las 3 N correspondenden a 3 Nulos.

Yo quiero saber si existe alguna condicion o manera de saber que campos tienen parte de su informacion con Nulos.


Muchas gracias,
no deben ser nulos, sino espacios. '1234567sss', debes verificar si es siempre de derecha a izquierda donde quedan los espacios para rellenar.
select * from cliente where cuenta = substr(trim('1234567 ')+space(10),1,10)




y que la comparacion se haga o quitar los espacios
select * from cliente where cuenta = trim('1234567 ')
__________________
Todos llevamos nuestros demonios a cuestas..

Última edición por gmontes fecha: 12-07-2007 a las 22:19:12.
Responder Con Cita
  #7  
Antiguo 03-09-2007
Avatar de Cura
Cura Cura is offline
Miembro
 
Registrado: oct 2005
Posts: 15
Poder: 0
Cura Va por buen camino
Hola, el insull y el coalesce solo funciona con campos numericos q devuelven null, tengo el mismo problema, como puedo hacer para manejar el null?
ya que cuando el resultado del query es null la dbgrid no lo acepta y sale un error.
Responder Con Cita
  #8  
Antiguo 03-09-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
A ver... como que te estas confundiendo bastante...

un campo o es null o no lo es... es imposible que sea una parte valor y otra parte nulo.
Como ya te dijeron, tal ves sean espacios en blanco.

Mas bien tu problema va por otro lado y no has sabido explicarte.
__________________

Responder Con Cita
  #9  
Antiguo 03-09-2007
ramonc ramonc is offline
Registrado
 
Registrado: may 2007
Posts: 5
Poder: 0
ramonc Va por buen camino
quizás te ayude saber el length del campo?
o como te han indicado más arriba, hacer uso de las funciones que tratan los strings
o usar la funcion isnull
o una combinación de todo lo anterior

si no te explicas mejor...

un saludo
Responder Con Cita
  #10  
Antiguo 03-09-2007
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Cita:
Empezado por crc Ver Mensaje
Esto sirve cuando el campo es nulo completamente pero este no es mi caso.

mi campo es de largo 10...
Cuenta char(10) y el valo que tiene es '1234567NNN' donde las 3 N correspondenden a 3 Nulos.

Yo quiero saber si existe alguna condicion o manera de saber que campos tienen parte de su informacion con Nulos.

Muchas gracias,
Seguramente no te has sabido explicar, por lo que entendí, lo que quieres es ¿filtrar por la longitud del texto? o sea, que "1234567NNN" ¿correspondería a "1234567"? Si este es el caso, yo utilizo un motor que me permite ver la longitud del texto, no sé si estará disponible en todos los motores sql, pero lo harias así

Código SQL [-]
...
Where (CHAR_LENGTH(tabla1.micampo) < 10) /*no nulos*/
...

si este no es el caso, y deseas buscar las 3 Ns al final, entonces con este componente yo utilizaría un codigo como este:
Código SQL [-]
...
Where (RIGHTSTR(tabla1.micampo,3) = 'NNN') /* en este caso devolveria los nulos */
/* ------ */
Where (RIGHTSTR(tabla1.micampo,3) <> 'NNN') /* en este otro caso devolveria los no nulos */

no sé si la función RIGHTSTR es estandar en SQL o existe alguna que ofrezca la misma función, creo que lo último es más posible. Espero que te hata servido de ayuda mi comentario.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #11  
Antiguo 20-09-2007
crc crc is offline
Registrado
 
Registrado: may 2007
Posts: 7
Poder: 0
crc Va por buen camino
Cita:
Empezado por D&W Ver Mensaje
Seguramente no te has sabido explicar, por lo que entendí, lo que quieres es ¿filtrar por la longitud del texto? o sea, que "1234567NNN" ¿correspondería a "1234567"? Si este es el caso, yo utilizo un motor que me permite ver la longitud del texto, no sé si estará disponible en todos los motores sql, pero lo harias así


Código SQL [-]
...
Where (CHAR_LENGTH(tabla1.micampo) < 10) /*no nulos*/
...





si este no es el caso, y deseas buscar las 3 Ns al final, entonces con este componente yo utilizaría un codigo como este:

Código SQL [-]
...
Where (RIGHTSTR(tabla1.micampo,3) = 'NNN') /* en este caso devolveria los nulos */
/* ------ */
Where (RIGHTSTR(tabla1.micampo,3) <> 'NNN') /* en este otro caso devolveria los no nulos */





no sé si la función RIGHTSTR es estandar en SQL o existe alguna que ofrezca la misma función, creo que lo último es más posible. Espero que te hata servido de ayuda mi comentario.

Muchas Gracias a todos los que respondieron, la verdad es que todas me ayudaron un poco, asi que gracias a todos.

Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al Pasar valores entre MDI Childs MaMu Varios 16 07-06-2007 02:20:33
cambiar campo null a not null andressanchez Firebird e Interbase 8 18-09-2006 22:00:09
Problema con resultados Null vpepen SQL 14 27-07-2006 10:19:04
Problema con asignacion de valores en un rango Valeric Servers 4 06-09-2005 13:44:04
problema con qreport, me repite los valores. chelejuan Impresión 2 19-01-2005 18:03:19


La franja horaria es GMT +2. Ahora son las 16:51:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi