Wählen Sie Teil der Spalte
Ich Frage mich, wenn jemand helfen könnte mit einer Abfrage auswählen, die Sie eine Spalte.
Die Spalte 'criteriadata' Daten enthält, würde so Aussehen:
CriteriaData
14 27 15 C
14 30 15 DD
14 38 15 Pass
14 33 15 Pass -
Wie kann ich wählen Sie einfach die Daten, die angezeigt wird, nachdem die Zahl 15.
Vielen Dank.
Wird
Wenn Sie viele Zeilen, die Sie wirklich wollen, zu normalisieren diese Daten. Wenn nicht, vielleicht eine indizierte Sicht mit einer berechneten Spalte, wäre eine Arbeit um. Funktionen in der Abfrage (evtl. abgesehen von Aggregationsfunktionen) sind ein gutes Zeichen, es wird langsam.
15
immer angezeigt, wie der 7. und 8. Zeichen? Und warum nicht diese Daten gespeichert werden als vier separate Spalten?Wenn Sie viele Zeilen, die Sie wirklich wollen, zu normalisieren diese Daten. Wenn nicht, vielleicht eine indizierte Sicht mit einer berechneten Spalte, wäre eine Arbeit um. Funktionen in der Abfrage (evtl. abgesehen von Aggregationsfunktionen) sind ein gutes Zeichen, es wird langsam.
InformationsquelleAutor dawsonz | 2012-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
SQL Fiddle Demo
Ok, nun Behoben. Siehe mein edit.
Dies hat wunderbar funktioniert, vielen Dank für deine Hilfe Mahmoud.
InformationsquelleAutor Mahmoud Gamal
Ergebnis:
Das hat nicht funktioniert für mich ist es ein Fehler in Zeile 7.
es ist nur die insertion des test-Daten, der scheitert. Die Abfrage funktioniert. Diese Art, das einfügen der Daten funktioniert ab sql server 2008
Ah ja danke, nachdem ich gerade getestet, tut es in der Tat Arbeit. Danke @Mikael
InformationsquelleAutor Mikael Eriksson
Wenn
CriteriaCData
immer enthält ein Muster von 3 zahlen mit 2 Ziffern, getrennt durch einen Raum, dann will man immer abrufen vom 10 chars:Wenn Sie unter oracle 10 min.g verwenden Sie dann REGEXP_SUBSTR zum abrufen der alpha-Muster
InformationsquelleAutor ThierryT
Sollten Sie verwenden substring mit Links Funktionen
Haben Sie einen Blick auf diese: Wie zum extrahieren dieser bestimmten substring in SQL Server?
Und so: http://msdn.microsoft.com/en-us/library/aa259342(v=sql.80).aspx
InformationsquelleAutor Ali Issa
Da Sie scheinen zu wollen, alles aus dem neunten Charakter ab, den Sie verwenden konnten,
RIGHT
undLEN
Jedoch, Sie wären besser dran, normalisieren Sie Ihre Daten so war es schon in eine seperate Spalte.
InformationsquelleAutor Jodrell
Auf oracle verwenden LÄNGE, anstatt LEN
InformationsquelleAutor r.karnati
SELECT substring(criteriadata, 9, LEN(criteriadata)-8) from table
Dies setzt Voraus, dass die position der 15 befestigt ist.
InformationsquelleAutor Johnno Nolan
InformationsquelleAutor Manikandan Sethuraju
Erstellte ich eine SQL-Funktion, split-Kriterien durch die Räume und nutzten die Letzte Verbleibende Wert nach dem letzten Raum.
InformationsquelleAutor cbillowes
Aber ein bisschen zweideutig, dein Kommentar war ja richtig. Ich bearbeitet meine Antwort entsprechend.
Dies ist immer noch falsch. Ich schlage vor, Sie testen es auf die tatsächlichen Daten
InformationsquelleAutor Nathan
Als hatte ich Schwierigkeiten damit, Antworten vor der Arbeit hatte ich zu meinen eigenen und Abbildung für zukünftige Referenz ich würde es lassen, auf Stack Overflow. Mein Feld hat XML aber es ist ein NVarchar-Feld und sollte verallgemeinern, Prima - wenn Sie klare Kriterien für die linken UND rechten umliegenden Saiten.
Es ist nicht ein komplettes Spiel zu dieser Frage, aber ich hoffe es hilft jemand anderes hat riesige Zeichenfolgen in Ihren Spalten und muss snip aus einem string, der variiert zwischen zwei anderen!
InformationsquelleAutor Richard Griffiths