2016-11-11 7 views
0

真中のMr、Ms、JRを取り除くことを検討してフルネームから名字を解析する方法と、終わり。SQLサーバーの名字を解析する

Jon Doe Jr First: Jon Last: Doe 
Jon J Doe First: Jon Last: Doe 
Mr Jon Doe First: Jon Last: Doe 

はありがとう

+2

あなたは名前を構成するものについて多くの仮定をしています。名前が単に 'FIRST MIDDLE LAST'であるという保証はありません。多くの姓にはいくつかの単語が含まれています。私が知っている限り、与えられた/姓に完全な名前を確実に解析するためのアルゴリズム的な方法はありません。 – CollinD

+0

国際的な名前は、姓と名字を混同する逆の順序を持​​つこともできます。非常に恥ずかしい。 – arkascha

+0

あなたはまた正式に姓の一部である元のタイトルを持っています。あなたは確かにそれらを取り除きたくはありません! – arkascha

答えて

0

(名前、CHARINDEX( ' '名前))最初として、 ストリング(名前、CHARINDEX(''、名前)+1、LEN(名前を)左セレクト - ( CHARINDEX( ''、name)-1))最後に からテーブル名;

+0

これは、 –

+0

SQL Serverを使用して名前を解析する方法の任意のアイデアを助けることができますか? – Rachel

+0

上記のクエリ@ Rachel –

0

私は私のデータ移行と統合作業に時間から時間にこの機能を使用PARSE_NAME_UDF here

と呼ばれる気の利いた機能を発見した:ここで

は、2つの列姓と名を返すいくつかの例です:ここで

SELECT 'First:' = dbo.PARSE_NAME_UDF('Jon Doe Jr', 'F'), 'Last:' = dbo.PARSE_NAME_UDF('Jon Doe Jr', 'L') 
     UNION ALL SELECT 'First:' = dbo.PARSE_NAME_UDF('Jon J Doe', 'F'), 'Last:' = dbo.PARSE_NAME_UDF('Jon J Doe', 'L') 
     UNION ALL SELECT 'First:' = dbo.PARSE_NAME_UDF('Jon Doe', 'F'), 'Last:' = dbo.PARSE_NAME_UDF('Jon Doe', 'L') 

は、より多くの例を示します。

SELECT dbo.PARSE_NAME_UDF('Fred J Muggs Jr', 'F M L S') -- Returns Fred J Muggs Junior 
    SELECT dbo.PARSE_NAME_UDF('Fred J Muggs Jr', 'F M L s') -- Returns Fred J Muggs Jr 
    SELECT dbo.PARSE_NAME_UDF('Fred J Muggs Jr', 'f. M. L s') -- Returns F. J. Muggs Jr 
関連する問題