Ceci est mon violon Sql avec schéma et données. SQL Query j'ai écrit fonctionne très bien et renvoie les données.Données Sql avec espace non nécessaire à droite
http://sqlfiddle.com/#!6/bcf65/4
Mais la confusion est pourquoi dois-je « l'espace » quand je jamais créé lors de l'insertion des données dans le tableau. Par exemple Voir cette partie du Code de la requête:
(SUBSTRING
(
[xml]
,CHARINDEX('P',[xml]) + 3
,LEN([xml])-8
)
en fonction SubString
je dois retirer un peu d'espace pour obtenir le résultat LEN([xml])-8
.
Supposons deux scénarios: (les deux sont de requête d'insertion SQL Fiddle)
j'ai une ligne avec des données
177PKR3572427992899
. Sa longueur totale est '19'. Ainsi, dans la fonction SubString utilisée ci-dessus, sa position de départ est7
, c'est-à-dire3
aprèsR
dans Données et pour obtenir sa longueur tout en ignorant les 2 derniers chiffres, la fonctionLen()
doit êtreLen(xml)-1
. Mais, à la place, je dois utiliser-8
pour passer les 2 derniers chiffres. C'est vraiment déroutant pour moi d'où vient cet espace? Voyons le deuxième maintenant. J'ai une ligne avec les données0PKR101
. Sa longueur totale est de '7'. Donc, dans la fonction SubString dans SQL Fiddle, sa position de départ est4
, c'est-à-dire1
aprèsR
dans Data et pour obtenir sa longueur tout en ignorant les 2 derniers chiffres, la fonctionLen()
doit êtreLen(xml)-1
. Mais, Au lieu de cela, je dois utiliser-6
ici pour passer les 2 derniers chiffres. Comment puis-je le faire fonctionner commelen(xml)-1
comme il devrait être ..
Je suis curieux: Pourquoi appelez-vous votre colonne '[xml]', étiqueter la question en tant que telle, mais je ne peux pas voir de choses liées au XML? – Shnugo
@Shnugo désolé supprimé la balise xml. Eh bien, ces valeurs sont récupérées en colonne à partir de fichiers XML, donc oui ... – ARr0w