我有一个客户列表,其名称为全名。我想创建一个将全名作为参数并分别返回名字和姓氏的函数。如果不可能,我可以有两个单独的函数,一个返回名字,另一个返回姓氏。全名列表包含最多三个单词的名称。我想要的是:
例子:-
**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
我搜索并找到了无法按预期运行的解决方案,并希望获得一些建议。
简明扼要
DECLARE @t TABLE(Fullname varchar(40)) INSERT @t VALUES('John Paul White'),('Peter Smith'),('Thomas') SELECT LEFT(Fullname, LEN(Fullname) - CHARINDEX(' ', REVERSE(FullName))) FirstName, STUFF(RIGHT(FullName, CHARINDEX(' ', REVERSE(FullName))),1,1,'') LastName FROM @t
结果:
FirstName LastName John Paul White Peter Smith Thomas NULL