为什么我只得到一个结果?
select replace(N'2',N'2','X') as Text
union
select replace(N'2',N'²','X') as Text
第二个SELECT语句包括一个平方。
@@ version = Microsoft SQL Server 2012 - 11.0.5623.0
答案 0 :(得分:3)
行为取决于整理的区分大小写:
SELECT REPLACE(N'2' COLLATE Latin1_General_CS_AS, N'2' COLLATE Latin1_General_CS_AS,'X' COLLATE Latin1_General_CS_AS) as Text
UNION
SELECT REPLACE(N'2' COLLATE Latin1_General_CS_AS, N'²' COLLATE Latin1_General_CS_AS,'X' COLLATE Latin1_General_CS_AS) as Text
GO
--results:
X
2
SELECT REPLACE(N'2' COLLATE Latin1_General_CI_AS, N'2' COLLATE Latin1_General_CI_AS,'X' COLLATE Latin1_General_CI_AS) as Text
UNION
SELECT REPLACE(N'2' COLLATE Latin1_General_CI_AS, N'²' COLLATE Latin1_General_CI_AS,'X' COLLATE Latin1_General_CI_AS) as Text
GO
--results:
X
如果没有为文字表达式指定排序规则,则使用数据库默认排序规则。