SQL右侧截取:如何使用函数移除字符串右侧指定内容?
移除字符串右侧固定长度内容的几种实用方法
看你的需求,是要把像Washington, USA、Tokyo, JAP这类字符串末尾的, XXX(逗号+空格+3位字符,总长度5)去掉对吧?这里有几个简单好用的方法,不管是在数据库、Excel还是编程语言里都能实现:
1. 用SUBSTRING类函数(固定长度截取)
因为你要移除的内容长度是固定的5位,直接通过字符串总长度减去5来截取前面的部分就好,不同工具的语法略有不同:
- SQL环境(MySQL/SQL Server等):
这里SELECT SUBSTRING(your_column, 1, LENGTH(your_column) - 5) AS cleaned_city FROM your_table;LENGTH(your_column)获取字符串的总长度,减去5就是我们要保留的城市名长度,从第1位开始截取到这个长度就行。 - Excel/Google Sheets:用
LEFT函数更直观,它本来就是从左侧取指定长度的内容:
把A1换成你的目标单元格,=LEFT(A1, LEN(A1)-5)LEN(A1)计算总长度减5,就能得到去掉末尾5位的城市名。
2. 按分隔符截取(更通用的思路)
如果以后遇到格式小变动(比如偶尔没有空格?),按逗号分隔的方法更稳妥,不用依赖固定长度:
- MySQL里用SUBSTRING_INDEX:
这个函数会直接提取第一个逗号之前的所有内容,完美适配你的场景,不管后面的国家代码格式有没有小变化。SELECT SUBSTRING_INDEX(your_column, ',', 1) AS cleaned_city FROM your_table; - Python里的字符串分割:
original = "Seoul, KOR" cleaned_city = original.split(',')[0].strip() # strip是防止前面有空格,这里你的数据里没有也可以不加
这些方法都能快速帮你搞定需求,选哪种就看你当前用的工具和实际情况啦~
内容的提问来源于stack exchange,提问作者Nexus




