使用 SQL 将非英文文本转换为英文文本

Convert Non-English text into English text using SQL

我有文本归一化方法,我用它来只将非英文字母转换成英文字母

我需要使用 SQL 服务器

完成相同的功能

C# 方法:

  private  string normalizeString(string inputWord)
        {
            StringBuilder stringBuilder = new StringBuilder();
            foreach (char c in inputWord.Trim().ToCharArray())
            {
                string normalizedChar = c.ToString()
                    .Normalize(NormalizationForm.FormD).Substring(0, 1);

                stringBuilder.Append(normalizedChar);
            }

            return stringBuilder.ToString();
        }

例子

Ä => A
ä => a
Ö => O
ö => o
Õ => O
õ => o
Ü => U
ü => u

根据这个 Question SQL 服务器中没有这样的本机功能。 你可以做的是为此创建一个 CLR Function

如果你想删除变音符号,你可以使用 Collate

例如:

select 'áéíóú' collate SQL_Latin1_General_Cp1251_CS_AS

这将 return "aeiou"

Source