2016-07-05 69 views
0

我從第三方接收文件,並將其上載到表中。它有一個Description列,我必須找到一個「賬號」(長度爲9個字符)。查找字符串中的確切短語(SQL Server 2008)

幾個樣本說明:

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列是一個免費的文字,不知道該帳戶沒有出現。

正如您在上面看到的,它可能出現在說明的結尾處,或者出現在某處或開始處。

對於此AMH-061060-POK,我們截斷POK並刪除' - '以獲得9長度帳號。

在使用SQL函數查找帳號時有什麼幫助?

+0

它是文本,所以你只能使用tsql字符串函數:https://msdn.microsoft.com/en-CA/library/ms181984.aspx,這太寬泛了。我們不是在這裏爲你寫一個文本解析器。你想知道如何識別文本中的帳號,我們只是(可能)嘗試幫助修復該代碼。 –

+1

@MarcB我甚至不認爲這是SQL Server的工作。相反,他應該將文本加載到Java或C#中,然後使用字符串函數,正則表達式等來獲取他的帳號。確實是 –

+0

。雖然我確定有一個jon雙向輸入框可以實現一個完整的AI來識別OP的文本,只需使用幾個字符串函數並選擇101%的可靠性查詢,但我認爲他們不會是掛在這個網站上。 –

回答

0

Anupama - 在第一個例子中,您如何知道帳號是「AMH-061060」而不是「UNSECURED」?都是九個字符。

什麼是確定哪個字符串是帳號的邏輯?首先定義它,然後你可以編碼它。

+0

帳號不應該是一個單獨的單詞,長度應爲9或更多。我考慮前面3個字母數字後跟6個數字。我正在考慮在發送給REGEX之前刪除' - '破折號 –