DB2 trim automatique des résidus espaces
Il s'agit de données dans TB_USER table
USER_USERID
--------------
A111
A9999
ADMIN
AHO
AHO2
AHO3
AHO4
...et le schéma de TB_USER table est
COLUMN_NAME DATA_TYPE DATA_LENGTH
-------------------- --------- -----------
USER_USERID VARCHAR 15
Lorsque j'exécute instruction SELECT suivante:
SELECT USER_USERID FROM TB_USER WHERE USER_USERID = 'ADMIN '
...et:
SELECT USER_USERID FROM TB_USER WHERE USER_USERID = 'ADMIN'
DB2 retrouver par la même sortie suivante
USER_USERID
--------------
ADMIN
Comment résoudre ce problème?
14 questions & aucune n'a accepté...
OriginalL'auteur Fuangwith S. | 2009-10-20
Vous devez vous connecter pour publier un commentaire.
Ce comportement est aussi conçu des prédicats d'égalité pour les comparaisons de chaînes de ne pas considérer les espaces de fin. Comme Rakesh suggéré, le prédicat LIKE examinera les espaces. Il dépend de votre cas d'utilisation, qui vous devriez aller avec.
La documentation pertinente:
DB2 9.7 Infocenter - Affectations et des comparaisons
"Lorsque l'on compare les chaînes de caractères de longueurs inégales, la comparaison est effectuée à l'aide d'une copie logique de la chaîne plus courte, qui est complété à droite par des espaces suffisants pour étendre sa longueur à celle de la plus longue chaîne de. Cette logique d'extension est faite pour l'ensemble des chaînes de caractères, y compris ceux marqués comme POUR les BITS de DONNÉES."
DB2 9.7 Infocenter - prédicat LIKE
"Le prédicat LIKE recherches pour les chaînes qui ont un certain modèle. Le modèle est spécifié par une chaîne dans laquelle le trait de soulignement et le signe " % " peut avoir des significations particulières. Les espaces à droite dans un modèle sont une partie du dessin."
OriginalL'auteur Michael Hvizdos
Vous devez utiliser le RTRIM ou GARNITURE fonction.
OriginalL'auteur Michael Sharek
Au lieu de
Utilisation
OriginalL'auteur Rakesh Juyal