使用 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
我有文本归一化方法,我用它来只将非英文字母转换成英文字母。
我需要使用 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