Sélectionnez la Partie de la Colonne
Je me demandais si quelqu'un pouvait aider avec une requête pour sélectionner une partie d'une colonne.
La colonne 'criteriadata' contient des données qui ressemblerait à ceci:
CriteriaData
14 27 15 C
14 30 15 DD
14 38 15 Pass
14 33 15 Pass
Comment puis-je sélectionner uniquement les données qui apparaît après le numéro 15.
Merci beaucoup.
- Va
15
apparaissent toujours comme les 7 et 8 caractères? Et pourquoi n'est-ce pas les données stockées quatre colonnes séparées? - Si vous avez un grand nombre de lignes que vous voulez vraiment pour normaliser les données. Si non, peut-être une vue indexée avec une colonne calculée serait un travail autour de. Les fonctions de votre requête (éventuellement de limitation des fonctions d'agrégation) sont un bon signe qu'il sera lente.
Vous devez vous connecter pour publier un commentaire.
SQL Violon Démo
Résultat:
Si
CriteriaCData
contient toujours un motif de 3 nombres de 2 chiffres séparés par un espace, alors vous voulez toujours à récupérer à partir de 10 caractères:Si vous êtes sous oracle min 10.g ensuite utiliser REGEXP_SUBSTR pour récupérer l'alpha motif
Puisque vous semblez vouloir tout, à partir de la neuvième caractère à partir, vous pouvez utiliser
DROIT
etLEN
Cependant, vous feriez mieux de normaliser vos données de sorte qu'il était déjà dans une autre colonne.
Sur oracle utiliser la LONGUEUR au lieu de LEN
Vous devez utiliser la sous-chaîne à gauche, avec des fonctions
Ont un coup d'oeil à ceci: Comment extraire cette sous-chaîne dans SQL Server?
Et ce: http://msdn.microsoft.com/en-us/library/aa259342(v=sql.80).aspx
SELECT substring(criteriadata, 9, LEN(criteriadata)-8) from table
Cela suppose que la position de 15 est fixe.
J'ai créé une fonction SQL pour diviser les critères par les espaces et utilisé la dernière valeur restante après le dernier espace.
Que j'ai eu des difficultés à faire avant de réponses de travail, j'ai dû trouver mon propre et figure de référence pour l'avenir je partirais sur un Débordement de Pile. Mon domaine a XML mais c'est un champ de type NVarchar et devrait se généraliser très bien - si vous avez un des critères clairs pour la gauche ET la droite environnant les chaînes.
Ce n'est pas une correspondance exacte à cette question, mais j'espère que cela aide quelqu'un d'autre qui a des énormes chaînes dans leurs colonnes et les besoins de tailler une chaîne qui varie entre deux autres!