在 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 中分割人名的最简单方法? 的相关文章

  • 插入MYSQL时自动初始化GETDATE()

    类似问题 https stackoverflow com questions 17700239 mysql column automaticly current time of insert w3schools 也许有用的链接 http w
  • 如何获取 PostgreSQL 中表上所有索引的列名列表?

    我有这个查询来获取表上的索引列表 SELECT ns nspname as schema name tab relname as table name cls relname as index name am amname as index
  • SQL 用随机数据填充表

    我有一个包含两个字段的表 id UUID 是主键并且 描述 var255 我想用SQL语句插入随机数据 我希望这个描述是随机的 PS 我正在使用 PostgreSQL 我不确定这是否符合 随机描述 的要求 也不清楚您是否想要生成完整的数据
  • 检查字符串是否以 XXXX 开头

    我想知道如何在Python中检查字符串是否以 hello 开头 在 Bash 中我通常这样做 if string hello then do something here fi 我如何在Python中实现同样的效果 aString hell
  • 如何将 ArrayList 中的所有值相加或转换为 ArrayList

    我试图将 ArrayList 中的所有值相加 但没有任何方法可以让我得到总和 我必须找到从文本文件中提取的数字的平均值 public static void main String args throws IOException File
  • 仅打印字符串中的元音

    我是Python新手 我正在尝试打印字符串中的所有元音 因此 如果有人输入 嘿 一切都好吗 所有元音都需要打印 但我不知道怎么做 所以这不是计算元音 而是打印元音 现在我已经得到了这个 sentence input Enter your s
  • 分割文件名

    如何编写Python脚本来分割文件名 eg LN0001 07272010 3 dat 并将文件重命名为LN0001 JY 07272010 另外我如何放置 该文件 内容 中每一行的末尾每一行都是一条记录 fn LN0001 0727201
  • sql“LIKE”查询语法

    这个查询有什么问题 string command get pay select Credit from Update Company Credit where Update Date LIKE System DateTime Today T
  • 如果我没有可在 T-SQL PIVOT 中用作聚合函数的列怎么办?

    正如这里所见 http www tsqltutorials com pivot php http www tsqltutorials com pivot php 如果我没有可以执行 SUM 的列怎么办 如何获得数据透视表结果 总有COUNT
  • kubernetes 如何将 pod 暴露给集群机器之外的东西?

    我读了以下内容Kubernetes 文档 https kubernetes io docs tutorials kubernetes basics expose expose intro 这导致以下 yaml 在集群中运行 postgres
  • 查看oracle有关主/外键约束的元数据

    哪个表包含有关约束的详细信息 例如外键引用的表 表 all cons columns all constraints 仅包含约束的名称 这不是很有帮助 我目前正在使用 dbms metadata get ddl 但它不适用于所有数据库 Th
  • Python中的字符串替换,按顺序,按索引[重复]

    这个问题在这里已经有答案了 我是一个刚开始从 YouTube 学习 Python 的新手 我正在尝试制作一个程序 用新的字符串数字替换旧的字符串数字 并在替换数字时遇到问题 想要替换索引 它的技术术语是什么 我不知道 它可以朝一个方向或索引
  • 将表从 postgres 数据库同步/导入到 elasticsearch 的正确方法是什么?

    我想将 postgres 数据库中的一些表导入到 Elastic search 中 并使这些表与 elastic search 中的数据保持同步 我看过 udemy 上的课程 还与一位对此问题有丰富经验的同事进行了交谈 以了解最好的方法是什
  • C++:获取注册表值仅给出第一个字符[重复]

    这个问题在这里已经有答案了 我试图从注册表中获取字符串值 但我只得到第一个字母 HKEY hKey char gamePath MAX PATH if RegOpenKeyEx HKEY CURRENT USER L Software Bl
  • 无法在 postgres insert 中插入问号

    我正在尝试运行一个简单的 Postgres SQL 插入 insert into Resources values 1 How are you 但插入后的结果是 ID Data 1 How are you 1 我知道 要插入单引号等字符 我
  • 获取每月第二个星期二的日期

    有没有办法使用 T SQL 语法找出每月第二个星期二的日期 例如 三月是十二号 四月是九号 您可以通过此方法查找 2013 年所有 第二个星期二 select dateadd day 8 datediff day 1 dateadd mon
  • 使用 Athena 从 AWS WAF 日志中的规则组列表获取终止规则

    我跟着这些说明 https docs aws amazon com athena latest ug waf logs html将我的 AWS WAF 数据放入 Athena 表中 我想查询数据以查找具有 BLOCK 操作的最新请求 此查询
  • 将 SQL 变量传递给 ASP

    这里只是有点语法问题 我正在使用 SQL 和 ASP 并且到目前为止有以下代码 set rs Server CreateObject ADODB recordset rs Open Select from Questions conn sq
  • PostgreSQL 中的仅索引扫描和位图索引扫描有什么区别?

    在我的查询中 我只想调用具有精确 where 条件的数据 这些where条件是在index html中创建的 Bu 解释显示了位索引扫描 我不明白为什么 我的查询如下所示 Select r spend r date from metadat
  • 如何在Redshift中进行分层随机样本?

    我需要对从不同类别购买商品的客户进行随机抽样 有8个类别 订单分布在其中 如果我想对已购买的客户进行随机抽样 但保持每个类别的订单比例相同 我将如何在我的 sql 代码中进行设置 下面的表格强调了这一点 它不包括客户数据 我希望我的客户列表

随机推荐

  • 无法在 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 在