当前位置: 首页 > 知识库问答 >
问题:

在SQL中,如何将带有空格的值拆分为两列?

路雅懿
2023-03-14

给出如下表格:

在将来,我希望“Fullname”列不再存在,这些值应该分为“Firstname”和“Lastname”。将这两个值分开的可能性是最后一个空格,因为有些名称有两个名字,这两个名字都应转换为“Firstname”。

我已经试了一段时间了,但我想不出一个表达方式。

你对我如何解决这个问题有什么想法吗?

共有2个答案

慕飞章
2023-03-14

您可以REGEXP_REPLACE此处:

SELECT
    REGEXP_REPLACE(Fullname, '^(.*) \S+$', '\1') AS Firstname,
    REGEXP_REPLACE(Fullname, '^.* (\S+)$', '\1') AS Lastname,
    Fullname
FROM yourTable;

如果要实际更新表,请使用:

sql prettyprint-override">UPDATE yourTable
SET
    Firstname = REGEXP_REPLACE(Fullname, '^(.*) \S+$', '\1'),
    Lastname  = REGEXP_REPLACE(Fullname, '^.* (\S+)$', '\1');
戴正阳
2023-03-14
UPDATE
    Sometable
SET
    Firstname = REGEXP_REPLACE(' [^ ]*$', '', Fullname),
    Lastname = REGEXP_REPLACE('.* ', '', Fullname)

粘贴上面的代码时要非常小心,不要弄乱正则表达式中的空格

 类似资料:
  • 问题内容: 我有桌子: 我想要这样的输出: 问题答案: 如果可以创建一个数字表,其中包含从1到要拆分的最大字段的数字,则可以使用以下解决方案: 请看这里的小提琴。 如果无法创建表,则解决方案可以是: 这里有个小提琴例子。

  • 我有表: 我想要这样的输出:

  • 我有一个数据帧,并希望将数据帧分割成两个基于多个列。 df的所有行都应该没有空列,状态为“是”。Rest应该在df_null上 德国行不在结果数据框中,因为它已被过滤掉。

  • 问题内容: 我尝试将文件读入熊猫。该文件具有以空格分隔的值,但是我尝试使用不同数量的空格: 但这不起作用 问题答案: 添加参数,它比正则表达式更快。

  • 如果客户端想要将消息存储到txt文件中,用户使用关键字msgstore后跟引号。 示例:“ABC就像123一样简单” 我试图将msgstore和quote拆分为数组中两个独立的元素。 我目前拥有的是: 但我面临的问题是,它在第二个空格后再次分裂,因此它是: 我的问题是,如何将后半部分组合成具有未知长度元素的单个数组,以便: 我是java新手,但我知道在python中使用(7::)之类的东西很容易做

  • 简单地说,我目前正在使用的程序要求我分割扫描仪输入(例如:2火腿和奶酪5.5)。它应该读取一份杂货订单,并将其分成三个数组。我应该使用string.split,并能够将此输入拆分为三部分,而不考虑中间字符串中的空格。 示例输入#1:2苹果0.9 示例输出#1: 2个 苹果 0.9 示例输入#2:2更多苹果0.9 示例输出#2: 2个 更多的苹果 0.9 我如何实现这一点?每当我用string.sp