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

如何在SQL中移除数据列内的所有非字母字符?

解答

你只需要在现有转大写、修剪空白的逻辑外,嵌套正则替换函数删除所有非A-Z的字符即可,不同运行环境的实现方式如下:

  • 支持REGEXP_REPLACE的主流数据库(MySQL 8.0+、PostgreSQL、Oracle、SQL Server 2017+)
    直接使用以下代码:
    REGEXP_REPLACE(UPPER(TRIM([Name])), '[^A-Z]', '') AS [Name]
    
    其中[^A-Z]为正则匹配规则,代表匹配所有不属于大写英文字母的字符,替换为空字符串即可完成清理。
  • 低版本SQL Server(2016及更早,不支持原生正则函数)
    可以通过自定义标量函数实现字符清理,首先执行以下语句创建函数:
    CREATE FUNCTION dbo.RemoveNonAlphaCharacters(@Input NVARCHAR(MAX))
    RETURNS NVARCHAR(MAX)
    AS
    BEGIN
        DECLARE @KeepValues AS NVARCHAR(50) = '%[^A-Z]%'
        WHILE PATINDEX(@KeepValues, @Input) > 0
            SET @Input = STUFF(@Input, PATINDEX(@KeepValues, @Input), 1, '')
        RETURN @Input
    END
    GO
    
    调用时使用:
    dbo.RemoveNonAlphaCharacters(UPPER(TRIM([Name]))) AS [Name]
    
  • Pandas数据框处理场景
    如果你是用Python Pandas做数据清洗,使用以下代码即可:
    df['Name'] = df['Name'].str.strip().str.upper().str.replace(r'[^A-Z]', '', regex=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:57:00