2009-09-29 65 views
3

我已经在sql server中有一个表,其中一列用于存储多语言数据,它是当前的nvarchar(250)。使用sql server排序和排序和统一代码

当对Web前端的列进行排序时,我想考虑用户的语言环境,例如西班牙语正确排序并将“ch”考虑在内。

我有点迷失在如何做到这一点。

任何人都可以指向正确的方向。

回答

2

如果您在使用SQL Server 2005起,您可以在ORDER BY子句指定归类名,所以你可以动态地构造查询和选择的归类名称:

[ ORDER BY 
    { 
    order_by_expression 
    [ COLLATE collation_name ] 
    [ ASC | DESC ] 
    } [ ,...n ] 
] 

但请务必仔细阅读The Curse and Blessings of Dynamic SQL

1
SELECT ... 
FROM Table 
WHERE ... 
ORDER BY <column> COLLATE Spanish_CI_AI; 

您可以在操作期间使用COLLATE指定列的特定归类。这起到了将类型数据转换为指定排序规则的作用。