gpt4 book ai didi

sql - sql server中的简单like查询没有返回结果

转载 作者:行者123 更新时间:2023-12-02 04:17:41 25 4
gpt4 key购买 nike

我在 sql server 上有一个简单的 LIKE 查询,当前导字符与第一个字符相同时,该查询不会返回任何结果...

数据库故事包含一行,其中包含字段“Lastname”和值“Aalesund”

select * 
from table
where LastName like 'A%' -- returns no results

如果我将“姓氏”字段更改为包含“奥勒松”,则完全相同的查询将返回正确的行。

有什么想法吗?

斯蒂格

最佳答案

在 Sql 服务器的丹麦语/挪威语排序规则中,“aa”被视为 å 的“同义词”,因为这就是 1940 年代之前丹麦这封信的书写方式。这也意味着排序时“aa”被视为字母表的最后一个字母。

我不知道这种行为在挪威上下文中是否有意义,但我认为排序规则在 Sql server 2012 中被分成两部分,也许这会解决它。

更新:根据维基百科,挪威将“Aa”用作“Å”与丹麦语的用法类似:“Aa”已被标准化语言的官方组织废除了数十年,但一些城镇拒绝这样做由于历史原因改名,“Aa”在姓氏中也仍然很常见。

基于此,我想说,在搜索 LIKE“A%”时找不到“Aalesund”是挪威本地化应用程序中最正确的行为。如果您不使用丹麦/挪威排序规则来更改此设置,您应该意识到它将更改其他属性,例如特殊字母的排序,如上所述。

许多名为Danish_Norwegian_...的不同排序规则不会对您有帮助。它们指定了对大小写、重音、字符宽度和假名类型敏感度的行为(我相信后者仅与日语相关)。 “Å”不被视为带重音的“A”,而是一个不同的字母。排序规则命名约定的描述位于this MSDN article中。 .

更新2:令人惊讶的是,排序规则Norwegian_100_CI_AI 似乎符合您的要求。也许丹麦和挪威的用法毕竟不同......

关于sql - sql server中的简单like查询没有返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9003764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com