【发布时间】:2017-08-30 21:33:41
【问题描述】:
我有一个全名的客户列表。 我想创建一个以全名作为参数并分别返回名字和姓氏的函数。如果这不可能,我可以有两个单独的函数,一个返回名字,另一个返回姓氏。全名列表包含最多三个单词的名称。 我想要的是这样的:-
- 当全名由两个单词组成时。第一个应该是 名字和第二个应该是姓氏。
- 当全名由三个单词组成时。第一个和中间的单词应该是名字,而第三个单词应该是姓氏。
例子:-
**Full Name**
John Paul White
Peter Smith
Ann Marie Brown
Jack Black
Sam Olaf Turner
结果:-
**First Name Last Name**
John Paul White
Peter Smith
Ann Marie Brown
Jack Black
Sam Olaf Turner
我已经搜索并找到了无法按预期工作的解决方案,并希望得到一些建议。
【问题讨论】:
-
只要你知道这些规则会将名字分成两部分,不一定是“名字”和“姓氏”,这只是寻找和选择正确的空间和然后将字符串一分为二。如果您的要求是选择正确的空间来找到正确的名字和姓氏,天哪,天哪,您是不是在寻找范围蠕变的惊喜。将名字解析成正确的部分是一项不可能完成的任务,因为一个人认为他的名字和姓氏可能与另一个人不同,即使他们放在一起时具有相同的“全名”。
-
合乎逻辑的选择应该是为 first、middle、last 等设置不同的字段,让有名字的人决定去哪里。
标签: sql sql-server tsql