2011-01-07 207 views
2

在我们的SQL Server 2005机器上,我遇到了一个错误,那就是当为具有某些字符的下游系统准备数据时,所有'f'字符都被删除限制。在SQL Server 2005中将'φ'转换为'f'的问题

我发现在UDF中有一个声明试图用''替换'φ'字符。问题在于,至少在我们的SQL Server安装中,'φ'和'f'是相同的东西。

有人能告诉我什么是区分'φ'和'f'的最佳方法吗?

例如:

select case when 'φ' = 'f' then 'equal' else 'not equal' end 

对于我来说,这个回报“等于”

+1

什么** **整理你有你的服务器上,并在你的数据库? – 2011-01-07 16:32:22

+0

刚刚检查。它是SQL_Latin1_General_CP1_CI_AS。 – smcmahon 2011-01-07 16:35:28

回答

6

使用字符串字面N'φ'所以它不会强制为默认的排序规则。

对我来说(下SQL_Latin1_General_CP1_CS_AS

select case when 'φ' = 'f' then 'equal' else 'not equal' end /*equal*/ 

select case when N'φ' = 'f' then 'equal' else 'not equal' end /*not equal*/