首页 > 解决方案 > 将拆分的字符串放入每一行

问题描述

我的问题是这样的:

想象一下有一个表(People),我们有一个名为 name 的列,有 5 行,所以在我们的例子中:

Name:
Enrique West
Damien Braun
Ellie Osborne
Cierra Vega
Alden Cantrell

然后我们有另一列,称为姓氏。此栏为空。现在我需要 sql 代码将所有这些人的姓氏放在姓氏列中。那么我们应该有:

Surname:
West
Braun
Osborne
Vega
Cantrell

我试过这个:

Update People
set Surname =
(SELECT SUBSTRING(name, 23, 20)
from People)
where condition

我目前收到此错误:

Subquery returned more than 1 value. This is not permitted when the 
subquery follows =, !=, <, <= , >, >= or when the subquery is used as an 
expression.

重要的是每一行,例如 Enrique West 所在的行,只包含他的姓氏。

我应该在代码中添加或更改什么?

非常感谢你!

标签: sqlsplit

解决方案


不要使用子查询!只是:

Update People
    set Surname = SUBSTRING(name, 23, 20)
    where condition;

推荐阅读