RE:Select Campos null
Publicado por
Optim (1 intervención) el 02/04/2008 03:04:16
select * from Tabla1
where Codigo_Paquete IS NULL
Te explico muy en criollo:
El valor NULL es un valor que no es ni cero, ni vacío. Por defecto (y si está admitido en la columna) se asigna un valor NULL a un campo cuyo valor no fue especificado.
Por esto, dos valores NULL no son iguales, ya que pueden contener "secuencias de bytes" diferentes. La cláusula IS NULL te permite determinar si un valor es de esa clase, en efecto.
Un ejemplo, si tenés una tabla "tabla1", con tres campos: "a", "b" y "c" de tipo texto (varchar en SQL Server) por ejemplo, y supongamos que querés agregar un nuevo registro a la tabla, pero sólo te interesa insertar el valor de "a" y de "b", sea cual fuere el motivo (que a "c" lo quieras agregar más tarde, por ejemplo), entonces hacés:
INSERT INTO dbo.Tabla1
(a,b)
VALUES
('un dato', 'otro dato');
Entonces el registro en la tabla te va a quedar así:
a b c
un dato otro dato NULL
A qué voy con esto (que es algo muy básico): El valor NULL es un valor por defecto, y es muy útil para trabajar con algunos tipos de datos, como el tipo fecha (datetime) en el que no se puede determinar un valor "vacío" o "cero", y que el hecho de tomar un valor específico como valor neutro (por ejemplo, decir que la fecha 1/1/1900 00:00 sería tu valor neutro) te puede traer muchos problemas y además te va a con llevar a programar sentencias mucho más complejas, debido a la necesidad de manipular ése valor).
Los que saben aconsejan usar los valores NULL lo menos posible. Por ejemplo, al insertar en un campo de tipo cadena ó texto, insertá una cadena vacía '', o en el caso de los campos numéricos, utilizá un valor que sepas que no vas a tomar como válido como entrada, casos típicos son el cero o algún valor negativo (muy usado en columnas de claves foráneas).
Espero que te haya sido de utilidad.
Un abrazo.