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

如何在SQL Server中区分阿拉伯字母ة与ت并仅替换ة

解决SQL Server中仅替换阿拉伯语字母ة而不替换ت的问题

这个问题我之前也踩过坑!主要是SQL Server默认的阿拉伯语排序规则会把发音相近的ة和ت视为“等价”字符,所以用普通的REPLACE时就不小心把两个字母都替换了。要精准只替换ة,核心是让SQL Server严格区分这两个字符的二进制编码,具体可以这么做:

  • 使用二进制排序规则约束REPLACE的匹配逻辑,因为二进制排序会直接对比字符的Unicode码点,不会因为发音或书写近似就合并处理。

修改后的SQL语句如下:

UPDATE MyTable 
SET MyColumn = REPLACE(MyColumn COLLATE Arabic_BIN, N'ة', N'ه')

如果你的SQL Server版本支持,也可以用Arabic_BIN2排序规则,它是更精准的二进制排序实现,效果完全一致。

为什么这招管用?因为ة的Unicode码是U+0629,而ت是U+062A,二进制排序规则会严格按照这个码值去匹配,所以只会找到ة并替换成ه,完全不会影响ت。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:30:01