WÄHLEN Sie aus der 3. Komma im string
Habe ich den folgenden string:
bzip2,1,668,sometext,foo,bar
Wie kann ich AUSWÄHLEN, nur sometext,foo,bar
? Die Länge der Zeichenfolge vor dem 3. Komma voneinander abweichen und es kann sein, Kommas innerhalb der sometext,foo,bar
.
Ich würde dies gerne als prägnante code wie möglich, D. H. vorzugsweise 1 Zeile code, keine loops. Aber fühlen Sie sich frei, um post jede Lösung, die Sie denken.
Das hat absolut null mit der Frage zu tun.
Vielleicht geben Sie ein start: stackoverflow.com/questions/8726111/...
Wird es immer exakt 3 Komma (4 "Elemente") ?
Es ist nicht comma seperated values. Es ist ein BZ-komprimierten string. Jede Zeile hat einen anderen string. Bitte nur Vertrauen, die Frage ist hier, es ist vollkommen gültig.
Dies ist, was ich meinte mit "es kann sein, Kommas innerhalb der
Vielleicht geben Sie ein start: stackoverflow.com/questions/8726111/...
Wird es immer exakt 3 Komma (4 "Elemente") ?
Es ist nicht comma seperated values. Es ist ein BZ-komprimierten string. Jede Zeile hat einen anderen string. Bitte nur Vertrauen, die Frage ist hier, es ist vollkommen gültig.
Dies ist, was ich meinte mit "es kann sein, Kommas innerhalb der
sometext
". Es gibt vielleicht 100 Kommas.InformationsquelleAutor Danny Beckett | 2012-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie dies:
Tun, einen substring aus der 3. Komma an das Ende der Zeichenfolge.. find die 3 Kommas , ich bin mit charindex () - Funktion, 3-mal
Ergebnis:
CHARINDEX
s als meine Antwort. Eine bessere Lösung ist:declare @v varchar(max) = 'bzip2,1,668,sometext' select substring(@v, CHARINDEX(',', @v, CHARINDEX(',', @v, CHARINDEX(',', @v)+1)+1)+1, len(@v))
(wie ich geschrieben als meine Antwort).InformationsquelleAutor Joe G Joseph
Code:
Ausgabe:
Bearbeiten
Hinzugefügt nullif ist, um das Dritte Komma Berechnung Teil, ohne Sie ist es möglich, inkonsistente Ergebnisse erhalten.
InformationsquelleAutor Denis Valeev
Hier ist eine andere Idee
Ergebnis
Ich bin generieren (Reihe Nummer) in einer sequenziellen Weise.Wie also lässt sich die Reihenfolge ändern?
Ist es vielleicht nicht, aber das ist nicht der Punkt, es ist nicht garantiert! Wie ist es sequentiell? Ihre innere Ordnung durch absichtlich macht die Reihenfolge willkürlich ist, und der äußeren Abfrage nicht verwenden, um durch an alle!
InformationsquelleAutor Niladri Biswas
Ich gerade herausgefunden, dass etwas funktioniert:
Ja, ich dachte mir, diese ein wenig vor dem @Joe geschrieben seine Antwort. Seine ist etwas anders aber es hat mehr
1
's und@v
'sAls Faustregel gilt, dass die OP sollte nicht nach Antworten zu seiner eigenen Frage innerhalb von wenigen Minuten der Entsendung.
Erstens, jeder kann die post sofort eine Antwort, während veröffentlichen Sie Ihre Frage. Zweitens, ich war auf der Suche nach einer Lösung für eine halbe Stunde. Durch Zufall habe ich gedacht, die Lösung ein paar Minuten nach Veröffentlichung der Frage. Du hast mich verloren; an welchem Punkt ist es unzumutbar post eine Antwort? Vor allem, wenn es die beste Antwort, die der Reihe...
Gerade bemerkt, dass @Joe ' s Antwort beinhaltet auch die doppelte Anrufe zu
CHARINDEX()
InformationsquelleAutor Danny Beckett