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

如何用SQL去除字段开头指定字符串?以Name字段去A2为例

SQL实现去除Name字段开头的"A2"字符串

当然可以实现这个需求,根据你使用的数据库类型,以下是几种常用的解决方案:

MySQL/MariaDB

方法1:条件判断+字符串截取

通过LEFT()判断字段是否以"A2"开头,符合条件则用SUBSTRING()截取从第3位开始的字符:

SELECT
  CASE
    WHEN LEFT(Name, 2) = 'A2' THEN SUBSTRING(Name, 3)
    ELSE Name
  END AS Name,
  Year
FROM your_table_name;

方法2:正则替换

用REGEXP_REPLACE()直接匹配开头的"A2"并替换为空字符串,写法更简洁:

SELECT
  REGEXP_REPLACE(Name, '^A2', '') AS Name,
  Year
FROM your_table_name;

SQL Server

方法1:STUFF函数

STUFF()可以直接删除指定位置的字符,这里删除前两位:

SELECT
  CASE
    WHEN LEFT(Name, 2) = 'A2' THEN STUFF(Name, 1, 2, '')
    ELSE Name
  END AS Name,
  Year
FROM your_table_name;

方法2:SUBSTRING函数

结合LEFT()判断后,用SUBSTRING()截取从第3位到末尾的字符:

SELECT
  CASE
    WHEN LEFT(Name, 2) = 'A2' THEN SUBSTRING(Name, 3, LEN(Name))
    ELSE Name
  END AS Name,
  Year
FROM your_table_name;

PostgreSQL

方法1:正则截取

利用SUBSTRING()的正则匹配功能,直接提取去除前缀后的部分:

SELECT
  SUBSTRING(Name FROM '^A2?(.*)') AS Name,
  Year
FROM your_table_name;

方法2:条件判断+截取

用LIKE匹配前缀,符合条件则截取后续字符:

SELECT
  CASE
    WHEN Name LIKE 'A2%' THEN SUBSTRING(Name, 3)
    ELSE Name
  END AS Name,
  Year
FROM your_table_name;

注意:将上述代码中的your_table_name替换为你实际使用的表名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 10:51:01