我有一个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”的所有三行的允许值 如何使我的搜索区分大小写,以便我只从最后一行获得允许的? 我希望有一个简单的方法,因为我不想再次设置整个服务器......
答案 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'
是服务器或数据库的排序规则(如果不同)