Teilstring variabler Länge

8

Ich habe eine Tabelle mit einer Spalte, die Strings wie folgt enthält.

%Vor%

Ich muss den Teilstring vom zweiten Vorkommen von _ bis zum Ende des Strings holen und wie Sie sehen können, hat der Teilstring keine feste Länge. Der erste Teil ist nicht immer fix, er kann sich ändern. Ab sofort verwende ich den folgenden Code, um es zu erreichen.

%Vor%

Wie Sie sehen können, nehme ich einen beliebig großen Wert als Länge, um auf variable Länge zu achten. Gibt es einen besseren Weg, es zu tun?

    
Ram 31.07.2013, 15:55
quelle

4 Antworten

11

Sie können CHARINDEX in Kombination mit der Funktion REVERSE verwenden, um das letzte Vorkommen zu finden von _ , und Sie können RIGHT verwenden, um die angegebene Anzahl von Zeichen zu erhalten das Ende der Zeichenfolge.

%Vor%

SQLFiddle DEMO

    
Nenad Zivkovic 31.07.2013, 16:07
quelle
6

Sie können versuchen, len ([string]) als letztes Argument anzugeben:

%Vor%     
Sonam 31.07.2013 16:00
quelle
1

Sie können einen allgemeinen Tabellenausdruck verwenden, um den Job wie den folgenden Code auszuführen. Das gibt die zusätzliche Flexibilität, alle Unterzeichenfolgen zu erhalten, egal wie viele Unterstriche in der Zeichenfolge sind.

%Vor%     
Dave Sexton 31.07.2013 16:18
quelle
0

Oder, selbst das:

%Vor%     
BWS 31.07.2013 16:02
quelle