2016-07-05 2 views
0

私はテーブルにアップロードするサードパーティからファイルを受け取ります。それはDescriptionの列を持っています。そこでは、「アカウントNO」(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

私はOPのテキストを何かを使って識別するための完全なAIを実装することができるjon skeet-typeがあると確信していますが、101%の信頼性を持つクエリを選択するだけですが、このサイトにはぶら下がっています。 –

答えて

0

Anupama - 最初の例では、口座番号が「AMH-061060」で、「UNSECURED」ではないことをどのように知っていますか?どちらも9文字です。

どの文字列がアカウント番号であるかを判断するロジックは何ですか?最初に定義してから、コード化することができます。

+0

アカウント番号は、9文字以上の長さの別個の単語である必要があります。私は最初の3英数字を6つの数字で検討します。私はREGEXに送る前にダッシュを削除することを考えています –

関連する問題