SQL拆分列并将值添加到另一列

时间:2017-02-09 16:06:02

标签: sql sql-server split sql-server-2016

我有一张看起来像这样的桌子。它有数千行

Name       Address  LName
Mike_Cole  NewYork  Null

我想拆分名称并将LastName添加到列LName

我的表应该如下:

Name       Address  LName
Mike_Cole  NewYork  Cole

3 个答案:

答案 0 :(得分:0)

如果是sql server你可以使用

  select name, addres RIGHT(name,LEN(name)-CHARINDEX('_',name)) lname
  from your_table 

答案 1 :(得分:0)

如果你想要在第一个下划线之后的所有内容,你可以这样做:

update t
    set LName = substring(name, charindex('_', name + '_') + 1, len(name);

答案 2 :(得分:0)

UPDATE table_name SET  LName = RIGHT(Name,LEN(Name) - CHARINDEX('_', Name))

但是,假设名称中只有1个下划线!

这是一个更好的解决方案:

 UPDATE table_name SET  LName = RIGHT(Name,CHARINDEX('_', REVERSE(Name)) - 1)

还要获得名字:

 UPDATE table_name SET  FName = LEFT(Name,CHARINDEX('_', Name) - 1)