【问题标题】:SQL Server cannot find special charactersSQL Server 找不到特殊字符
【发布时间】:2020-08-03 04:48:13
【问题描述】:

我的表有这样的记录

◦  bla bla bla bla

和其他类似的记录

◾ bla bla bla bla

当我尝试这个查询时,我得到零记录

SELECT TOP 100 *
FROM MyTable
WHERE Rec LIKE '◦%'

如何让 SQL Server 读取这个字符?

编辑:

SQL Server 2019 (v15)

【问题讨论】:

  • 您使用什么排序规则?您使用的是什么版本的 SQL Server?您如何配置客户端的编码和连接排序规则?
  • 可能是 Unicode 字符,你可以试试 WHERE Rec LIKE N'◦%'
  • @Piotr 你说得对,我在添加 N 后工作,谢谢。把它作为答案,所以我标记它

标签: sql-server


【解决方案1】:

它可能是一个Unicode字符,你应该使用WHERE Rec LIKE N'◦%'

【讨论】:

    【解决方案2】:

    使用SELECT name, description FROM fn_helpcollations(); 来识别您在服务器上安装可用的COLLATION,然后选择描述中没有accent-insensitive 的COLLATION(例如SQL_Latin1_General_CP1_CS_AS)。

    然后相应地调整您的查询...

    SELECT TOP 100 *
    FROM MyTable
    WHERE Rec LIKE '◦%' COLLATE SQL_Latin1_General_CP1_CS_AS
    

    各种代码页会以不同的方式处理字符,有些甚至可能将它们完全解释为不同的字符。明智地选择。

    【讨论】:

    • 谢谢,我试过了,但没有用。 Piotr 的解决方案对我有用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2010-12-10
    • 1970-01-01
    • 2014-04-25
    相关资源
    最近更新 更多