加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

替换T-SQL中的Unicode字符

发布时间:2020-12-12 06:22:28 所属栏目:MsSql教程 来源:网络整理
导读:如何仅替换字符串的最后一个字符: select REPLACE('this is the news with a t','t','__') 我得到的结果是: __是__e news wi__ a __ 编辑 服务器和数据库的排序规则是Latin1_General_CI_AS 我正在运行的实际查询是REPLACE(注意,’t’,”)其中note是一个ntex
如何仅替换字符串的最后一个字符:
select REPLACE('this is the news with a t','t','__')

我得到的结果是:

__是__e news wi__ a __

编辑
服务器和数据库的排序规则是Latin1_General_CI_AS

我正在运行的实际查询是REPLACE(注意,’t’,”)其中note是一个ntext列.重点是剥离刺字符,因为该字符后来在过程中用作列分隔符. (请不要建议更改分隔符,考虑到它的使用程度,这不会发生!)

我尝试使用N前缀,即使使用test select语句,结果如下:

解决方法

t字符(ASCII和UNICODE值254)被称为“刺”,在某些语言中直接等同于:

>这里的角色技术信息:http://unicode-table.com/en/00FE/
>此处对该字符和排序规则的说明:http://userguide.icu-project.org/collation/customization.在“复杂裁剪示例”中搜索页面(通常为Control-F),您将看到以下内容:

The letter ‘t’ (THORN) is normally treated by UCA/root collation as a separate letter that has primary-level sorting after ‘z’. However,in Swedish and some other Scandinavian languages,‘t’ and ‘T’ should be treated as just a tertiary-level difference from the letters “th” and “TH” respectively.

如果您不希望t等于th,则按如下方式强制进行二进制排序规则:

SELECT REPLACE(N'this is the news with a t' COLLATE Latin1_General_100_BIN2,N't',N'__');

返回:

this is the news with a __

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读