2016-07-05 3 views
0

Ich erhalte die Datei von Dritten, die ich in eine Tabelle hochlade. Es hat eine Description Spalte, in der ich ein "Konto Nr." (9 Zeichen in der Länge) finden muss.Finden Sie den genauen Ausdruck in einer Zeichenfolge (SQL Server 2008)

Einige Muster-Beschreibungen:

FROM AMH-061060-POK UNSECURED OVER 40 DAYS 
MAINTENANCE FEE A/C A4G123456 
ADJUST BALANCE VS 6PK-123123 
REIMBURSEMENT OF CHECK RE-ORDER FEE A4G111111 p11 
Asset Mgmt acct gold annual fee MPL NFL234234. 

Description Spalte ein freier Text ist und nicht weiß, wo das Konto nicht angezeigt wird.

Wie Sie oben sehen, kann es am Ende der Beschreibung oder in der Mitte irgendwo oder am Anfang erscheinen.

Für dieses AMH-061060-POK, kürzen wir POK und entfernen '-', um 9 Länge Kontonummer zu erhalten.

Hilfe bei der Suche nach der Kontonummer mit SQL-Funktionen?

+0

es ist Text, so dass Sie auf TSQL-String-Funktionen beschränkt sind: https://msdn.microsoft.com/en-CA/library/ms181984.aspx und das ist viel zu breit. Wir sind nicht hier, um einen Textparser für Sie zu schreiben. Sie finden heraus, wie Sie eine Kontonummer im Text identifizieren können. Wir werden (vielleicht) versuchen, den Code zu reparieren. –

+1

@MarcB Ich denke nicht einmal, dass dies ein Job für SQL Server ist. Vielmehr sollte er den Text in Java oder vielleicht C# laden und dann String-Funktionen, Regex usw. verwenden, um seine Kontonummer zu erhalten. –

+0

in der Tat. während ich bin sicher, es gibt einen Jon Skeet-Typ da draußen, die eine vollständige KI implementieren können, um OP-Text mit nichts als ein paar String-Funktionen zu identifizieren und Abfragen mit 101% Zuverlässigkeit auswählen, aber ich glaube nicht, dass sie sein werden herumhängen auf dieser Seite. –

Antwort

0

Anupama - Woher wissen Sie, dass die Kontonummer "AMH-061060" und nicht "UNSECURED" im ersten Beispiel ist? Beide sind neun Zeichen.

Was ist Logik bei der Bestimmung, welcher String die Kontonummer ist? Definieren Sie es zuerst, dann können Sie es kodieren.

+0

Konto-Nr. Sollte ein separates Wort mit 9 oder mehr Länge sein. Ich betrachte die ersten 3 alphanumerischen Folgen mit 6 Zahlen. Ich denke daran, Bindestriche vor dem Senden an REGEX zu entfernen –

Verwandte Themen