我有一个功能,包括:
SELECT @pString = CAST(@pString AS VARCHAR(255)) COLLATE SQL_Latin1_General_Cp1251_CS_AS
例如,这对于删除法语中的重音很有用;例如:
UPPER(CAST('Éléctricité' AS VARCHAR(255)) COLLATE SQL_Latin1_General_Cp1251_CS_AS)
给ELECTRICITE
.
但是 usingCOLLATE
使函数具有不确定性,因此我不能将其用作列中的计算持久值。
Q1。是否有另一种(快速而简单)的方法来删除这样的重音,具有确定性功能?
Q2。(奖励问题)我做这个计算持久列的原因是搜索。例如,用户可以将客户的姓氏输入为“Gagne”或“Gagné”或“GAGNE”或“GAGNÉ”,应用程序将使用持久计算列找到它。有一个更好的方法吗?
编辑:使用 SQL Server 2012 和 SQL-Azure。