真中の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
はありがとう
真中の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
はありがとう
(名前、CHARINDEX( ' '名前))最初として、 ストリング(名前、CHARINDEX(''、名前)+1、LEN(名前を)左セレクト - ( CHARINDEX( ''、name)-1))最後に からテーブル名;
私は私のデータ移行と統合作業に時間から時間にこの機能を使用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
あなたは名前を構成するものについて多くの仮定をしています。名前が単に 'FIRST MIDDLE LAST'であるという保証はありません。多くの姓にはいくつかの単語が含まれています。私が知っている限り、与えられた/姓に完全な名前を確実に解析するためのアルゴリズム的な方法はありません。 –
CollinD
国際的な名前は、姓と名字を混同する逆の順序を持つこともできます。非常に恥ずかしい。 – arkascha
あなたはまた正式に姓の一部である元のタイトルを持っています。あなたは確かにそれらを取り除きたくはありません! – arkascha