在 postgres 中分割人名的最简单方法?

2024-04-07

考虑一个包含人类全名的表:

create table names (full_name varchar not null);   
insert into names (full_name) 
  values ('Jane Marie Doe'), ('John Doe');

在 postgres 中,什么是simplest(最易读的)将名称分为第一个和最后一个的方法?

 first_name | last_name 
------------+-----------
 Jane Marie | Doe
 John       | Doe
(2 rows)

这是我想出来的,但看起来确实很复杂。当然有更简单的方法吗?

select 
  array_to_string(ary[1:len - 1], ' ') as first_name, 
  ary[len] as last_name 
from (
  select ary, array_length(ary, 1) as len
  from (
    select regexp_split_to_array(full_name, E'\\s+') as ary 
    from names
  ) sub1
) sub2;

你可以尝试

SELECT regexp_split_to_array(full_name, E'\\s\\S+') as ary

相反,因为它应该一致地在最后一个空格上分割。那么你知道只有两个成员ary

编辑: 经过进一步思考,我认为最好的方法可能是使用

SELECT regexp_replace(full_name,'\s\S+','') as first_name
SELECT regexp_replace(full_name,'.+[\s]','') as last_name
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 postgres 中分割人名的最简单方法? 的相关文章

  • Postgres jsonb数组:查询非空交集

    假设我有一个名为的 JSONB 列value在表中t 这些 JSON 的内部是tags字段是字符串列表 我想对这些标记的 JSON blob 进行查询 foo or bar 所以假设表数据如下所示 value tags other tags
  • 为什么replaceAll在这行代码中不起作用? [复制]

    这个问题在这里已经有答案了 String weatherLocation weatherLoc 1 toString weatherLocation replaceAll how weatherLocation replaceAll wea
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • SPARK SQL - 当时的情况

    我是 SPARK SQL 的新手 SPARK SQL 中是否有相当于 CASE WHEN CONDITION THEN 0 ELSE 1 END 的内容 select case when 1 1 then 1 else 0 end from
  • 是否有可能在 postgres 中捕获外键违规

    我正在尝试将数据插入具有外键约束的表中 如果我插入的行中存在约束违规 我想丢弃该数据 问题是每次我违反约束时 postgres 都会返回一个错误 我是否可以在插入语句中添加一些语句 例如 ON FOREIGN KEY CONSTRAINT
  • 将 SQL 数据中的一行映射到 Java 对象

    我有一个 Java 类 其实例字段 以及匹配的 setter 方法 与 SQL 数据库表的列名相匹配 我想优雅地从表中获取一行 到 ResultSet 中 并将其映射到此类的实例 例如 我有一个 Student 类 其中包含实例字段 FNA
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • 查找 PostgreSQL 中所有范围集合的所有交集

    我正在寻找一种有效的方法来查找时间戳范围集之间的所有交集 它需要与 PostgreSQL 9 2 配合使用 假设这些范围代表一个人可以见面的时间 每个人都可以有一个或多个空闲时间范围 我想找到all可以召开会议的时间段 即所有人都有空的时间
  • 有谁知道一种更快的方法来执行 String.Split() 吗?

    我正在读取 CSV 文件的每一行 并且需要获取每一列中的各个值 所以现在我只是使用 values line Split delimiter where line是保存由分隔符分隔的值的字符串 衡量我的表现ReadNextRow我注意到它花费
  • 拆分列中的字符串并在列中添加值

    我有一个包含几行数据的表 如下所示 16 W 2 Work ALBO 00 Proposal ALxO Amendement 1 20091022 signed pdf 17 W 2 Work ALBO 00 Proposal Level1
  • 将 UUID 存储为 base64 字符串

    我一直在尝试使用 UUID 作为数据库键 我希望占用尽可能少的字节数 同时仍然保持 UUID 表示形式的可读性 我认为我已经使用 base64 将其减少到 22 个字节 并删除了一些尾随的 这些 对于我的目的来说似乎没有必要存储 这种方法有
  • 插入触发器最终在分区表中插入重复行

    我有一个分区表 我认为 适当的INSERT触发器和一些限制 不知何故 INSERT语句为每个语句插入 2 行INSERT 一个用于父分区 一个用于相应的分区 设置简要如下 CREATE TABLE foo id SERIAL NOT NUL
  • 独立对列进行排序,使得所有空值都位于每列的最后

    这是一个名为的示例表animal name color fox brown fox red dog gold 现在 我想要的是这样的结果 fox dog brown gold red 名称应该是结果的列 不同颜色值作为行 我的第一个想法是
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 如何在 PostgreSQL 中使用具有多个值的 SQL LIKE 条件?

    有没有更短的方法来查找多个匹配项 SELECT from table WHERE column LIKE AAA OR column LIKE BBB OR column LIKE CCC 这个问题适用于 PostgreSQL 9 1 但如
  • Python:字符串不会转换为浮点数[重复]

    这个问题在这里已经有答案了 我几个小时前写了这个程序 while True print What would you like me to double line raw input gt if line done break else f
  • 如何计算特定字符在字符串中出现的次数

    我正在尝试创建一个函数来查看数组中的任何字符是否在字符串中 如果是 有多少个 我尝试计算每一种模式 但是太多了 我尝试使用 Python 中的 in 运算符的替代方案 但效果不佳 function calc fit element var
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任
  • 对多个数据库执行 SQL 查询

    我知道我的帖子与该论坛中的其他帖子的标题非常相似 但我真的找不到我需要的答案 这是我的问题 我的 Windows Server 上运行着 SQL Server 在我的 SQL Server 中 我有大约 30 个数据库 它们都具有相同的表和

随机推荐

  • 无法在 Laravel 10 中安装 jenssegers/mongodb

    我是 Laravel 的新手 我想使用 Laravel 10 连接到 MongoDB 需要安装 jenssegers mongodb 当我运行命令时composer require jenssegers mongodb 3 8 0 igno
  • 使用Jquery自动提交表单

    我正在尝试在页面加载后自动使用 jquery 提交表单 function input name name val somename input name email val email protected cdn cgi l email p
  • 相对布局alignParentLeft与alignParentStart[重复]

    这个问题在这里已经有答案了 所以我很喜欢使用相对布局 但是在习惯 Android Studio 的同时 我注意到在我的相对布局子视图中它生成了以下两个内容 android layout alignParentLeft true androi
  • 无法更新多处理的 manager.dict() 中的嵌套字典值

    我正在尝试更新多处理模块的 manager dict 的嵌套字典中的键 但无法这样做 它不会更新值 也不会引发任何错误 Code import time import random from multiprocessing import P
  • 字符串比较不起作用

    我正在尝试比较 WordPress 中的帖子标题 以避免创建标题已存在的帖子 foreach postnamearray as value if value titelzor echo value titelzor else echo va
  • 新发布的“使用Google Play服务进行身份验证”,通过GoogleAuthUtil.getToken获取令牌的问题

    Update 刚才我使用我也用于 Google App Engine 的 Google 帐户注册了 Google API 现在错误已更改为com google android gms auth GoogleAuthException Unk
  • 如何解决 C# 中机器人的干扰问题?

    我做了一个电报机器人 事实上 机器人是一个游戏 玩猜某些单词 但问题是当我将机器人添加到两个不同的组 作为管理员 或两个用户 Telegram 分别使用机器人和启动机器人时 会产生影响一个人的游戏对下一个人的游戏造成干扰 例如 如果 joh
  • Visual Studio 15.8.1 不运行 MS 单元测试

    当我将 Visual Studio 更新到最新版本时 我的一个测试项目停止运行测试并输出以下消息 测试项目 未引用任何 NET NuGet 适配器 测试 发现或执行可能不适用于该项目 这是 建议在每个测试项目中引用 NuGet 测试适配器
  • 向下浮动和双倍值的向下函数

    如何将下限函数应用于浮点或双精度值以获取整数 我得到双精度值 4 4497083717E10 float 值 4 4497084E10 从我的函数中出来 我得到的下限值为 Double 下限 4 4497083717E10 float 下限
  • GPUImage :将过滤器应用于现有视频文件

    我试图使用视频过滤器GPUImage框架 我跟着过滤和重新编码电影 http www sunsetlakesoftware com 2012 02 12 introducing gpuimage framework教程 它给了我错误Unkn
  • 如何在 SpiderMonkey JavaScript 中获取控制台输入?

    我目前正在使用 Spidermonkey 来运行我的 JavaScript 代码 我想知道是否有一个函数可以从控制台获取输入 类似于 Python 的做法 var raw input 或者在 C 中 std cin gt gt var 我环
  • 如何在 PostgreSQL 中的换行符上将一个值拆分为多行?

    我有一个名为BookInfo具有以下结构 id book name description 1 book 1 harry potter Part 2 2 我怎样才能分割该行 id 1 在换行符上分成多行 以便harry n potter n
  • iOS 14 - 如何以编程方式打开默认邮件应用程序?

    使用 iOS14 用户可以将不同的电子邮件客户端应用程序设置为默认值 有没有办法以编程方式打开选定的默认邮件应用程序 Using mailto URL 将默认邮件应用程序设置为 Gmail 后 不执行任何操作 显然你必须添加mailto t
  • 禁用 eclipselink 缓存和查询缓存 - 不起作用?

    我正在使用 eclipselink JPA 和数据库 该数据库也在我的应用程序外部进行更新 因此 我想每隔几秒钟查询一些表 即使我尝试禁用缓存和查询缓存 我也无法使其工作 例如 EntityManagerFactory entityMana
  • Google Maps Api 直线(最短)路线

    我目前正在尝试找到一种使用 Google Maps Api V3 获得直线路线的方法 我已经设法使用地理编码和方向服务来获取从 A 点到 B 点的路线 包括两条替代路线 我还尝试过 禁止高速公路 和 禁止通行费 但似乎没有什么可以完全解决这
  • 无法使用命令行解释器

    我尝试在 php 解释器中执行简单的 php 代码 当我执行命令时php a我收到消息 启用交互模式 没有任何地方可以输入 php 但我可以通过命令执行php代码php r 例如 php r echo Hello stackoverflow
  • zclip 在 jquery ui 非活动选项卡中不起作用

    我在用zclip http www steamdev com zclip 在我的 asp net 网页上的 jQuery UI 选项卡中的 jQuery UI 对话框中 它在第一个处于活动状态的选项卡中效果很好 但当我将其添加到第二个选项卡
  • 如何从 Git 存储库中删除文件?

    我怎样才能删除 file1 txt 从我的存储库 Use git rm https git scm com docs git rm 如果您想从 Git 存储库中删除该文件和文件系统 use git rm file1 txt git comm
  • SQL 将一列的值分组到另一列

    SQL 中是否有某种 聚合 函数可以将值转换为列表 一个示例可能是以下形式的表格 game id player score 1 fred 2 1 tom 1 2 fred 3 2 tom 4 我想要返回的是一个如下所示的表 player s
  • 在 postgres 中分割人名的最简单方法?

    考虑一个包含人类全名的表 create table names full name varchar not null insert into names full name values Jane Marie Doe John Doe 在