挙動は、照合の大文字と小文字の区別に依存します:
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
照合がデータベース、リテラル式のために指定されていない場合デフォルト照合が使用されます。
'N'2''は'N'²''と同じ扱いを受けなければなりません。 –
本当にクエリに2乗を入力したことは確かですか? –
ここで証明は 'select 1ここでN'² '= N'2''は' 1'を返します。 SQL Serverの ''² '=' 2 'のように見えます。したがって、両方の選択は 'X 'で置換されます。 –