use*_*236 3 sql t-sql sql-server
我有一个客户名单,他们的名字是全名。我想创建一个将全名作为参数并分别返回名字和姓氏的函数。如果这是不可能的,我可以有两个单独的函数,一个返回名字,另一个返回姓氏。全名列表包含最多包含三个单词的名称。我想要的是这个:-
例子:-
**Full Name**
John Paul White
Peter Smith
Ann Marie Brown
Jack Black
Sam Olaf Turner
Run Code Online (Sandbox Code Playgroud)
结果:-
**First Name Last Name**
John Paul White
Peter Smith
Ann Marie Brown
Jack Black
Sam Olaf Turner
Run Code Online (Sandbox Code Playgroud)
我搜索并找到了无法按预期工作的解决方案,并希望得到一些建议。
保持简短
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
Run Code Online (Sandbox Code Playgroud)
结果:
FirstName LastName
John Paul White
Peter Smith
Thomas NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8185 次 |
| 最近记录: |