You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL提取首个分号前内容的实现方法求助

PostgreSQL提取首个分号前内容的实现方法

方法1:使用split_part函数(推荐,简洁高效)

split_part可以直接按指定分隔符拆分字符串并提取指定位置的片段,完美适配你的需求:

SELECT 
  my_column,
  split_part(my_column, ';', 1) AS new_column
FROM 你的表名;

针对你给出的示例数据,执行后new_column会返回dark roast Colombian coffee(注:你示例结果里的Columbian是笔误,原字段内容为Colombian)。如果字段中没有分号,该函数会直接返回整个字段内容,无需额外处理。

方法2:用substring+position(模拟Excel的Left+Find逻辑)

和Excel的思路对应,先定位分号的位置,再截取开头到该位置前的内容:

SELECT 
  my_column,
  substring(my_column FROM 1 FOR position(';' IN my_column) - 1) AS new_column
FROM 你的表名;

注意:如果字段中不存在分号,position会返回0,减1后会导致报错,因此需要增加判断逻辑处理这种情况:

SELECT 
  my_column,
  CASE 
    WHEN position(';' IN my_column) > 0 THEN substring(my_column FROM 1 FOR position(';' IN my_column) - 1)
    ELSE my_column
  END AS new_column
FROM 你的表名;

内容的提问来源于stack exchange,提问作者George Nyi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:20:33