小编Rah*_*ksu的帖子

使用SC Collat​​ion进行SQL Server Unicode查询

在SQL Server 2012中,我有一个带有nvarchar列的表,其列表为Latin1_General_100_CI_AS_ SC,它应该支持unicode代理项对字符或补充字符.

  1. 当我运行此查询时:

    select KeyValue from terms where KeyValue = N'?'
    
    Run Code Online (Sandbox Code Playgroud)

    (上面是一个Unicode SC)
    上面是一个卷曲循环字符,代码为10160(x27B0)
    结果是数百个不同的单个字符条目,即使它们都有不同的UTF-16代码点.这是归因于整理吗?为什么没有完全匹配?

    编辑:我现在认为这是由于整理.在UTF-16范围内似乎有一组"未定义"字符,超过1733个字符,并且通过此排序规则将它们视为相同.虽然代码高于65535的字符被视为唯一,但这些查询返回完全匹配.

  2. 以下两个查询有不同的结果:

    select KeyValue from terms where KeyValue = N'?'
    
    Run Code Online (Sandbox Code Playgroud)

    返回3行:π和π和ᴨ

    select KeyValue from terms where KeyValue LIKE N'?'
    
    Run Code Online (Sandbox Code Playgroud)

    返回2行:π和π

    这是为什么?

  3. 这是最奇怪的.这个查询:

    select KeyValue from terms where KeyValue like N'?%'
    
    Run Code Online (Sandbox Code Playgroud)

    返回表中的ALMOST ALL记录,其中包含许多多字符常规拉丁字符集术语,如"8w"或"apple".没有退回的人中有90%是以"æ"开头的.怎么了?

注意:只是为了给出一些上下文,这些都是维基百科的文章标题,而不是随机字符串.

sql-server unicode sql-server-2012

6
推荐指数
1
解决办法
1520
查看次数

标签 统计

sql-server ×1

sql-server-2012 ×1

unicode ×1