服务器和数据库的不同整理,“更强”?

时间:2011-07-03 18:20:54

标签: sql-server-2008 collation

我有一个sqlserver 2008,其校对设置为:Finnish_Swedish_CI_AS

我在该服务器上也有一个表,其排序规则设置为:SQL_Latin1_General_CP437_CS_AS

在表格中,我有一个名为Material的列,其中包含

ABCF ABCF DF

SELECT Allowable  FROM [Mat].[dbo].[D100601EN6115K3] WHERE Thickness = 2 AND CHARINDEX('F', Material)>0

返回包含“f”或“F”的所有三行的允许值 如何使我的搜索区分大小写,以便我只从最后一行获得允许的? 我希望有一个简单的方法,因为我不想再次设置整个服务器......

1 个答案:

答案 0 :(得分:0)

使用COLLATE子句更改表达式

的排序规则
SELECT Allowable
FROM [Mat].[dbo].[D100601EN6115K3]
WHERE Thickness = 2 AND CHARINDEX('F', Material COLLATE SQL_Latin1_General_CP437_CS_AS) > 0

COLLATE子句可能违反整个表达式或只是列引用。

如果材料已经有整理材料COLLATE SQL_Latin1_General_CP437_CS_AS那么它应该是

CHARINDEX('F' COLLATE SQL_Latin1_General_CP437_CS_AS, Material)

对不起,它不是100%清楚哪个列是CS:Material还是其他。

基本上,'F'是服务器或数据库的排序规则(如果不同)