2010-07-30 27 views
29

¿Cómo se escribe una instrucción SELECT que solo devuelve filas donde el valor de una determinada columna es nulo?Seleccionar filas donde la columna es nula

+6

por favor haga su pregunta un poco más claro, es casi imposible determinar lo que está preguntando por aquí ... – Rob

+1

Información muy inadecuada en su pregunta. Debe mostrarnos su tabla y columnas de la base de datos y aclarar lo que realmente desea lograr. –

Respuesta

47

¿Quiere decir algo así como:

SELECT COLUMN1, COLUMN2 FROM MY_TABLE WHERE COLUMN1 = 'Value' OR COLUMN1 IS NULL 

?

2

Uso Is Null

select * from tblName where clmnName is null  
8

no estoy seguro de si esto responde a su pregunta, pero utilizando el constructo IS NULL, se puede comprobar si cualquier expresión escalar dado es NULL:

SELECT * FROM customers WHERE first_name IS NULL 

en MS SQL Server, el ISNULL() Función devuelve el primer argumento si no es NULO; de lo contrario, devuelve el segundo. Se puede utilizar con eficacia esto para asegurarse una consulta siempre produce un valor NULL en lugar de, por ejemplo .:

SELECT ISNULL(column1, 'No value found') FROM mytable WHERE column2 = 23 

Otros DBMSes tienen una funcionalidad similar disponible.

Si desea saber si una columna puede ser nula (es decir, se define como anulable), sin consultar los datos reales, debe consultar information_schema.

+1

+1 Nunca supe de la función ISNULL(). – WDuffy

2

¿Quiere saber si la columna es nula

select * from foo where bar is null 

Si desea comprobar si hay algún valor no es igual a algo y la columna también contiene valores nulos no se va a las columnas con nula en ella

no funciona:

select * from foo where bar <> 'value' 

hace el trabajo:

select * from foo where bar <> 'value' or bar is null 

en Oracle (no sé en otros DBMS) algunas personas usan este

select * from foo where NVL(bar,'n/a') <> 'value' 

si leo la respuesta de tdammers correctamente, entonces en MS SQL Server que esto es como

select * from foo where ISNULL(bar,'n/a') <> 'value' 

en mi opinión es un truco y el momento en que el 'valor' se convierte en una variable, la afirmación tiende a fallar si la variable contiene 'n/a'.

0

por algunas razones IS NULL puede no funcionar con un cierto tipo de datos de columna yo estaba en la necesidad de obtener todos los empleados que falta su nombre completo Inglés, he utilizado:

** SELECT emp_id, Full_Name_Ar , Full_Name_En de los empleados, donde Full_Name_En = '' o Full_Name_En es nulo **

+0

Eso es solo la búsqueda de registros donde Full_Name_En es un espacio ... no es muy útil en esta cuestión relacionada con NULL – sonyisda1

0
select Column from Table where Column is null; 
+0

Bienvenido a SO. Las respuestas de solo código no son tan útiles como las respuestas que tienen código de trabajo más explicaciones útiles. En este caso, valdría la pena explicar esta respuesta a un niño de 5 años. –

0

seleccionar * de nombreTabla donde columnName es nulo

Cuestiones relacionadas