Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/08/2008, 16h25   #1
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
Par défaut IN , NOT IN et NULL

Bonjour,

J'ai un problème en sql (sous sql server 2003), voici mes 3 requètes :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
SELECT  champ1 
FROM table1
WHERE id = 203;
 
==> 9 resultats
 
1
1
NULL
3
10
1
NULL
3
1
 
-------------------------------------
 
SELECT champ1   
FROM table1
WHERE id  = 203
AND champ1 NOT IN ('1','3','9','10');
 
==> 0 resultats
 
--------------------------------------
 
SELECT champ1   
FROM table1
WHERE id  = 203
AND champ1  IN ('1','3','9','10');
 
==> 7 resultats
 
1
1
3
10
1
3
1
 
----------------------------------
Si j'additionne 7 et 0 j'ai pas 9 ... il semble que mes 2 enregistrement a NULL aient "sauté".
Est ce que quelqu'un peut me fournir une explication censée à ces résultats ? Ou est ce un bug sql server, ou j'ai mal compris le IN, le NOT IN ou le NULL.

Voilou
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 16h29   #2
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 162
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 162
Points : 1 618
Points : 1 618
Tu as mal compris le NULL.
Le NULL n'étant rien, il n'est ni repris dans le IN ni dans le NOT IN.

J'ai pas le lien ainsi et je suis sur que tu trouveras plus d'information à ce sujet dans les petits papiers de SQLPro.


EDIT : voici le lien : http://sqlpro.developpez.com/cours/null/
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 16h31   #3
Membre expérimenté
 
Homme Rémi BOURGAREL
Développeur .NET
Inscription : juin 2006
Messages : 426
Détails du profil
Informations personnelles :
Nom : Homme Rémi BOURGAREL
Âge : 25
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Développeur .NET
Secteur : Tourisme - Loisirs

Informations forums :
Inscription : juin 2006
Messages : 426
Points : 584
Points : 584
D'accord merci, vais essayer d'y méditer, mais bon ce genre de truc ça peut faire faire de la m###e.
Bourgui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2008, 16h36   #4
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 162
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 162
Points : 1 618
Points : 1 618
C'est comme tout, ca dépend comment on l'utilise... Si on l'utilise bien, ca va
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h01.


 
 
 
 
Partenaires

Hébergement Web