SQL列整理更改

时间:2015-02-04 12:00:10

标签: sql sql-server-2012 collation

我想将列排序规则更改为某些波兰语排序规则,并且能够正确查看波兰语字符。所有三个,原始列,原始表和原始数据库,使用SQL_Scandinavian_CP850_CS_AS。

对于列整理更改,我尝试了:

SELECT CAST([ColumnName] AS nvarchar(50)) COLLATE Polish_CI_AS FROM t1

这三个示例字母出现在斯堪的纳维亚表中:

SELECT 'ØùÒ' COLLATE Polish_CI_AS

应返回结果łŚń。相反,它显示了' OuO'

1 个答案:

答案 0 :(得分:1)

不幸的是,SQL Server不支持OEM代码页852,如果要将'ØùÒ'转换为'łŚń',则需要将代码页850数据转换为。您可以通过CASTing通过varbinary更改数据的整理,而无需SQL Server进行字符映射,但这仅适用于支持的排序规则。

另一种方法可能是创建一个用户定义的函数,该函数接受一个字符串并一次一个地映射字符,因此Ø映射到ł等。很难做到,有(最多)127个字符到地图,但并不困难。