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

PostgreSQL:提取分隔符前可变长度字符串并生成degrees列

SQL提取学位信息解决方案

针对你需要从姓名中提取分隔符前的学位信息、无学位时显示空的需求,以下是不同SQL数据库的实现代码:

MySQL/MariaDB

使用SUBSTRING_INDEX函数结合条件判断:

SELECT 
    name,
    CASE 
        WHEN name LIKE '% %' THEN SUBSTRING_INDEX(name, ' ', 1)
        ELSE ''
    END AS degrees
FROM your_table;
  • 逻辑:SUBSTRING_INDEX(name, ' ', 1)提取第一个空格前的内容;通过CASE WHEN判断姓名是否包含空格,无空格则返回空字符串。

SQL Server

借助CHARINDEX定位空格位置,再用SUBSTRING截取:

SELECT 
    name,
    CASE 
        WHEN CHARINDEX(' ', name) > 0 THEN SUBSTRING(name, 1, CHARINDEX(' ', name) - 1)
        ELSE ''
    END AS degrees
FROM your_table;
  • 逻辑:CHARINDEX(' ', name)找到第一个空格的索引,SUBSTRING截取从开头到空格前的部分;无空格时返回空。

PostgreSQL

使用SPLIT_PART函数配合条件判断:

SELECT 
    name,
    CASE 
        WHEN STRPOS(name, ' ') > 0 THEN SPLIT_PART(name, ' ', 1)
        ELSE ''
    END AS degrees
FROM your_table;
  • 逻辑:STRPOS检测空格是否存在,存在则用SPLIT_PART拆分出第一部分;无空格返回空。

注意:以上代码默认学位与姓名的分隔符为单个空格,如果实际分隔符有变化(比如多空格、特殊符号),可根据情况调整函数参数。

内容的提问来源于stack exchange,提问作者Jericko Chi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:46:16