【问题标题】:How to extract substring excluding only the last word of string in Postgressql如何在Postgresql中提取仅排除字符串最后一个单词的子字符串
【发布时间】:2021-12-23 23:46:45
【问题描述】:

以下来自 Oracle 的代码的 Postgres 等效代码是什么:

trim(substr(country, 1, instr(country,' ', -1)-1));

谁能帮我提取字符串的整个部分,不包括字符串中的最后一个单词,用空格分隔。 例如。

From To
NEW YORK 5654 NEW YORK
ST LOUIS PARK, MN 55426-9999 ST LOUIS PARK, MN

【问题讨论】:

  • 这是answer 的问题吗?
  • @AntonGrig 虽然它们很相似,但它们并不相同。该问题是询问最后一个单词的位置(可能还有最后一个单词的文本),而这个问题是询问不包括最后一个单词的子字符串。

标签: postgresql oracle substring


【解决方案1】:

你可以使用:

SELECT address,
       LEFT(
         address,
         LENGTH(address) - POSITION(' ' in REVERSE(address))
       ) AS short_address
FROM   table_name;

其中,对于样本数据:

CREATE TABLE table_name (address) AS
SELECT 'NEW YORK 5654' UNION ALL
SELECT 'ST LOUIS PARK, MN 55426-9999'

输出:

address short_address
NEW YORK 5654 NEW YORK
ST LOUIS PARK, MN 55426-9999 ST LOUIS PARK, MN

db小提琴here

【讨论】:

    猜你喜欢
    • 2012-03-21
    • 2018-03-27
    • 2020-10-28
    • 2023-04-03
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多