|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Bonjour
J'aimerais pouvoir faire un select des rows ayant un champ xml NULL ou Vide is null fonctionne mais > '' me donne une erreur existe-t-il une formule magique ? Merci de votre aide
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
bonjour,
Pouvez vous nous donner un jeu de données pour votere cas ? Merci |
|
00
|
|
|
#3 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Bonjour MikeDavem
Mon cas n'est pas relatif au jeu de donnée mais a la syntaxe necessaire pour tester une colonne de type XML L'intention etant de detecter les row ayant une valeur nulle ou vide pour cette colonne J'ai fini par trouver Code :
WHERE MaCol IS NOT NULL AND (DATALENGTH(MaCol) < 5)
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Je ne comprends pas votre réponse. Vous voulez détecter les colonnes de type XML qui sont NULL (ou absences de valeurs)
Citation:
Code :
WHERE MaCol IS NOT NULL AND (DATALENGTH(MaCol) < 5) ++ |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Pour etre plus precis et pour vous aider a comprendre la difficulté originale
L'objetif est de tester si un champ XML est - NULL (on non null) et Vide (ou non Vide) Donc peu importe que le test soit positif ou negatif !! Le test que j'ai mis en place Code :
WHERE MaCol IS NOT NULL AND (DATALENGTH(MaCol) < 5) La difficulté résidait dans le fait que SQL Serveur n'accepte pas les operateur >,< , <> sur un champ XML Je cherchais donc la maniere de tester si ce champ xml avait ou non un contenu signifiant autre que NULL La methode qui permet de faire cela est la fonction Ensuite le choix de la longueur en operande depend evidement du contenu Dans mon cas il s'est averé que certains rows contenaient ente 0 et 5 blanc
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
00
|
|
|
#6 | ||
![]() ![]() ![]() David BARBARINExpert SQL Server Inscription : août 2005 Messages : 3 723 ![]() |
Dans ce cas je pense que vous pouvez utiliser la méthode exist().
Exemple : Code :
|
||
|
00
|
|
|
#7 |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 665 ![]() |
Bonjour,
Au passage écrire : Code :
WHERE MaCol IS NOT NULL AND (DATALENGTH(MaCol) < 5) NULL n'est pas une valeur, donc il n'a pas de longueur ! @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
00
|
|
|
#8 | |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Citation:
Mais j'ai pris l'habitude de systematiquement tester les NULL explicitement Ca evite parfois quelques résultat inattendus
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
|
00
|
|
|
#9 | |
|
Membre Expert
![]() Inscription : octobre 2007 Messages : 3 937 ![]() |
Citation:
Je regarde ce que ca donne demain
__________________
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain) |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com