SQL如何去除字段值末尾无后续字符的结尾逗号
实现方法
要移除Name字段末尾多余的逗号,直接使用SQL标准的TRIM函数即可,不需要额外编写复杂的字符串截取逻辑,该函数不会误删字段中间的逗号,完全匹配你的处理需求。
场景复现
当前从IRC_TABLE查询得到的原始结果:
Requistion_number Name 12 John Mayer, Andrew, 11 Swastak,
处理后预期结果:
Requistion_number Name 12 John Mayer, Andrew 11 Swastak
通用查询语句(支持MySQL、PostgreSQL、Oracle、SQL Server 2017及以上版本)
SELECT Requistion_number, TRIM(TRAILING ',' FROM Name) AS Name FROM IRC_TABLE;
- 语法逻辑:
TRAILING参数指定仅清理字符串末尾位置的目标字符,这里指定清理字符为逗号,,只会删除结尾位置的逗号,字符串中间的逗号会完整保留,刚好符合你的规则。
低版本SQL Server兼容写法
如果使用的是2016及更早版本的SQL Server,不支持TRIM的尾随字符清理语法,可以用条件判断结合字符串截取实现相同效果:
SELECT Requistion_number, CASE WHEN RIGHT(Name, 1) = ',' THEN LEFT(Name, LEN(Name) - 1) ELSE Name END AS Name FROM IRC_TABLE;
- 逻辑说明:先判断字符串最后一位是否为逗号,如果是就截取除最后一位之外的内容,否则直接返回原始字段值,效果和通用写法完全一致。
内容的提问来源于stack exchange,提问作者SSA_Tech124
相关产品推荐
相关产品推荐

