|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Inscription : mars 2009 Messages : 60 ![]() |
Bonjour,
J'ai un problème lors d'une requête sql, dans la clause where j'ai mis la valeur "is not null" pour éviter de récupérer des champs null et aussi la requête va tester si la donnée n'est pas vide avec ' ' mais par contre, on a remarqué qu'il y avait des données avec des espaces (aléatoires) que je ne souhaite pas récupérer. Savez-vous comment faire ? Voici ma clause where pour le moment : Code :
En vous remerciant |
||
|
|
00
|
|
|
#2 | ||
![]() ![]() Alain Ingénieur d'études décisionnel Inscription : mai 2002 Messages : 4 877 ![]() |
Comme ça ?
Code :
__________________
Modérateur Langage SQL N'oubliez pas le bouton et pensez aux balises [code]Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
|
||
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : mars 2009 Messages : 60 ![]() |
Merci pour votre réponse mais ça ne marche pas.
Je me demande si ces caractères ne sont pas liés à des tabulations... Existe-t'il une fonction permettant de retirer ou de détecter la tabulation dans les données? |
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 640 ![]() |
Bonsoir Unreal Time,
Supposons que la table T dont voici la structure soit à débarrasser de caractères du genre tabulation, retour chariot et autres joyeusetés polluant la colonne C : Code SQL :
La procédure ci-dessous n’est pas particulièrement sioux, elle est même très bœuf, mais du moins permet-elle de remplacer les scories (les valeurs hexadécimales comprises entres x'00' et x'0F' c'est-à-dire 0x00 et 0x0F) par quelque chose de lisible (en l’occurrence un point d’exclamation : '?'). J’ai utilisé le T-SQL de SQL Server 2005, la procédure est donc à adapter en fonction de votre SGBD. Un curseur permet de parcourir la table ligne par ligne. Pour chaque ligne, on examine chaque caractère de la colonne C, et si c'est une scorie, on remplace par un point d’interrogation. Nul doute que les cracks du SQL utilisé par votre SGBD (y-compris SQL Server !) sauront remplacer tout cela par une seule ligne dans l’instruction UPDATE... Code SQL :
Pour voir le résultat : Code SQL :
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||||||
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : mars 2009 Messages : 60 ![]() |
Bonjour fsmrel,
Je te remercie pour ta réponse remplie de bonnes idées. Je recherche du coup ma solution en cherchant à convertir en binaire la valeur retour chariot pour la retirer de la requête. J'ai appris entre temps qu'il s'agissait de Teradata SQL. Et j'ai oublié de préciser une contrainte qui m'est imposée, c'est que je ne dois pas modifier quoi que ce soit dans la table où je fais mes tests. Tout doit être dans une clause where. Je vous ai dis que c'était un défis? non bien pire!
|
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé Sénior
![]() ![]() ![]() François de Sainte MarieSpécialiste en bases de données Inscription : septembre 2006 Messages : 3 640 ![]() |
J'ai trouvé la fonction qui va bien dans le cas de SQL Server. Il s'agit de la fonction REPLACE associée à la fonction CHAR. Par exemple, dans la colonne C de la table T je recherche les retours-chariots (CHAR(13)) et affiche le contenu de la colonne avec un point d'interrogation à la place du retour-chariot :
Code :
A toutes fins utiles, selon la doc de Teradata, le retour-chariot se code en hexa : '0D'XC Voyez dans le forum Teradata, ça traite du problème, par exemple ici : Code :
__________________
_ Faites simple, mais pas plus simple ! (A. Einstein) E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire ») => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale ») __________________ Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !) |
||||
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Inscription : mars 2009 Messages : 60 ![]() |
Je vous remercie pour toutes votre aide et votre patience.
Finalement, nous avons pu corriger le problème en utilisant un autre champ pour retirer les valeurs null du tableau. Merci beaucoup !
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com