【发布时间】:2025-12-02 04:40:01
【问题描述】:
我正在使用 SQL Server,并且在一个表中有一个名为“全名”的列。我想将名字和姓氏分开,并将它们放在另一个表中自己的列中。
TABLE 1
**Full Name** (all one columns)
Joe Mamma
Fred Flintstone
Frank ford
John Doe
TABLE 2
**First Name**( Col1) **Last Name** (Column2)
Joe Mamma
Fred Flintstone
Frank ford
John Doe
这是我用来分隔名称的代码:
alter table mytable
add
first_name as LEFT(Full_Name,CHARINDEX(' ',Full_Name )-1)
, Last_Name as RIGHT(Full_Name, LEN(Full_Name)- CHARINDEX(' ', Full_Name))
select * from mytable
但这会在原始表中创建单独的列。有没有一种方法可以复制而不创建列?
谢谢!
【问题讨论】:
-
请提供样本数据、所需结果和数据库标签。明确说明如何处理中间名、多部分名字和姓氏以及后缀。
-
不要在表之间复制数据。
-
出色的测试数据:Malcolm McDowell、Conan O'Brien、Carl van der Walt 和 Jonathan Rhys-Davies。
-
但是为什么要复制信息?这通常是一件坏的事情。您将所有值都放在一个表中 - 没有充分的理由不应该将它们复制到另一个表中。
-
所需结果显示为“表 2” 目前不需要中间名称、第一部分信息或后缀。谢谢!
标签: sql sql-server sql-update