2010-07-30 6 views
29

Comment écrire une instruction SELECT qui renvoie uniquement des lignes où la valeur d'une colonne donnée est null?Sélectionner les lignes où la colonne est nulle

+6

S'il vous plaît faire votre question un peu plus clair, il est presque impossible de déterminer ce que vous êtes demander ici .. – Rob

+1

Informations très insuffisantes dans votre question. Vous devez nous montrer votre table et colonnes de base de données et rendre plus clair ce que vous voulez vraiment accomplir. –

Répondre

47

Voulez-vous dire quelque chose comme:

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

?

2

Utilisez Is Null

select * from tblName where clmnName is null  
8

Je ne sais pas si cela répond à votre question, mais en utilisant la IS NULL construction, vous pouvez tester si une expression scalaire donnée est NULL:

SELECT * FROM customers WHERE first_name IS NULL 

sur MS SQL Server, la fonction ISNULL() retourne le premier argument s'il n'est pas NULL, sinon il renvoie le second. Vous pouvez effectivement l'utiliser pour vous assurer une requête donne toujours une valeur au lieu de NULL, .: par exemple

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

D'autres DBMSes ont des fonctionnalités similaires disponibles.

Si vous voulez savoir si une colonne peut être être nulle (c'est-à-dire définie comme pouvant être définie comme nulle), sans interroger les données réelles, vous devez examiner le schéma d'informations.

+1

+1 Je n'ai jamais entendu parler de la fonction ISNULL(). – WDuffy

2

Vous voulez savoir si la colonne est nulle

select * from foo where bar is null 

Si vous voulez vérifier une valeur non égale à quelque chose et la colonne contient également des valeurs nulles vous ne serez pas les colonnes avec null dans ce

ne fonctionne pas:

select * from foo where bar <> 'value' 

fonctionne le:

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

Oracle (ne sais pas sur d'autres SGBD) certaines personnes utilisent ce

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

si je lis la réponse de tdammers correctement puis dans MS SQL Server est ce que comme

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

à mon avis, c'est un peu un hack et le moment «valeur» devient une variable, l'instruction tend à devenir bogué si la variable contient «n/a».

0

pour certaines raisons IS NULL peut ne pas fonctionner avec un certain type de données de la colonne j'avais besoin d'obtenir tous les employés que leur nom anglais est manquant, je l'ai utilisé:

** SELECT emp_id, Full_Name_Ar , Full_Name_En des employés où Full_Name_En = '' ou Full_Name_En est nul **

+0

C'est juste la recherche d'enregistrements où Full_Name_En est un espace ... pas très utile dans cette question traitant de NULL – sonyisda1

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

Bienvenue à SO. Les réponses au code seulement ne sont pas aussi utiles que les réponses qui ont un code de travail plus des explications utiles. Dans ce cas, il serait intéressant d'expliquer cette réponse à un enfant de 5 ans. –

0

select * from tableName où columnName est nul

Questions connexes