sql - 如何在 Postgres 中将表列数据从 'LastName, FirstName' 转换为 'FirstName LastName'

标签 sql postgresql substring

如何在 Postgres 中将表列数据从“LastName, FirstName”转换为“FirstName LastName”。

因此,如果表列包含“Ona, Lisa”,我希望它返回“Lisa Ona”。如果该列不包含“,”,那么我希望它返回 null。我一直在尝试使用 postgres 函数 SUBSTRING 和 REGEXP_REPLACE,但无法正常工作。

最佳答案

您需要 strpossubstr 函数以及一个 CASE 来返回 NULL

SELECT CASE WHEN strpos(name,', ') > 0 
            THEN substr(name,strpos(name,', ') + 2)  ||' ' || substr(name,0, strpos(name,', '))
            ELSE NULL END
    FROM person

fiddle

关于sql - 如何在 Postgres 中将表列数据从 'LastName, FirstName' 转换为 'FirstName LastName',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25303405/

相关文章:

c# - BulkCopy WriteToServer() 插入错误列

ruby-on-rails - rails 3 : migration error when using json as a column type in an ActiveRecord backed by Postgres

python - 从子字符串中提取的映射运算符

arrays - 在 Ruby 中,如何在给定要分解字符串的索引数组的情况下分解字符串?

SQL - SET DEFAULT 在删除值时不起作用

php - 尝试连接/查询 Microsoft Azure SQL 数据库时,DBLIB PDO 驱动程序一直失败

c# - 数据源中String类型的给定值无法转换为指定目标列的bigint类型

postgresql - 如何获得更改运行时参数的权限?

postgresql - 如果我需要等待连接,我应该做主异步吗?

java - 在java中将一个字符串分成3个不同的字符串变量