在SQL Server中按ASCII代码搜索文本以查找ASCII 63



在我的表记录中有一个特殊的字符(其中许多(

就是这个炭◾

当我尝试搜索包含此字符的记录时,出于某种原因,我会得到所有记录。

这是我的查询

SELECT TOP 100 * 
FROM X2 
where txt like N'%◾%'

我发现ASCII=63

我想知道是否有一种方法可以用ASCII码在文本中搜索?

我试过了,但没有记录

SELECT TOP 100 * 
FROM X2 
where txt like N'%' + char(63) + '%'

知道怎么得到它吗?

我正在使用SQL Server 2019(v15(

这是SQL Server如何进行Unicode比较的结果,简而言之,可以通过更改排序规则来解决,例如

declare @Test table (test nvarchar(max));
insert into @Test (test)
values (N'a◾b'), ('asd');
select *
from @Test
where Test like N'%◾%' COLLATE Latin1_General_100_CI_AI;

退货:

test
a◾b

修改排序规则以适合例如CI(不区分大小写(&lt->(区分大小写(、AI(不区分重音(&lt->AS(区分重音(。

如需完整描述,请参阅本文。

最新更新