【问题标题】:German Collation comparision as Nvarchar德国联盟比较为 Nvarchar
【发布时间】:2021-03-23 15:08:31
【问题描述】:

我在比较两个字符串时遇到了一个问题,一个是德国特殊字符“ß”,另一个是普通字符“ss”。我的数据库是“SQL_Latin1_General_CP1_CI_AS”排序规则,它应该比较这些字符,并且只有当我将它们作为硬编码字符串进行比较时,它才会按预期进行。但是,当我使用 cast 将它们转换为 NVARCHAR 时,它会将它们平等对待。我不明白为什么更改类型会产生影响。下面是我的例子。

SELECT name, collation_name
FROM sys.databases
WHERE name = N'DBName';

/**/

IF CAST('Steds.Weßels' AS NVARCHAR(100)) = CAST('Steds.Wessels' AS NVARCHAR(100))
BEGIN
SELECT 'Equal'
END
ELSE
BEGIN
SELECT 'Not equal'
END

/**/

IF 'Steds.Weßels' = 'Steds.Wessels'
BEGIN
SELECT 'Equal'
END
ELSE
BEGIN
SELECT 'Not equal'
END

【问题讨论】:

标签: sql sql-server


【解决方案1】:

我找到了解决方案。从 Nvarchar 更改为 Varchar 最终解决了这个问题。以下是详细链接:

https://docs.microsoft.com/en-us/answers/questions/327844/german-collation-comparision-as-nvarchar.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 2023-04-02
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    相关资源
    最近更新 更多