我遇到了一个情况下SQL服务器可以存储"索菲亚"和"索菲亚"是两个不同的字符串,但在TSQL比较时,他们是不管逐份使用,即使二进制分页相同:
CREATE TABLE #R (NAME NvarchAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS)
INSERT INTO #R VALUES (N'sofia')
INSERT INTO #r VALUES (N'?????')
SELECT * FROM #r WHERE NAME = N'?????'
sofia
?????
(2 row(s) affected)
IF '?????' = 'sofia' COLLATE SQL_Latin1_General_CP1_CI_AS
SELECT 'Values are the same'
ELSE
SELECT 'Values are different'
-------------------
Values are the same
(1 row(s) affected)
IF '?????' = 'sofia' COLLATE SQL_Latin1_General_CP437_BIN
SELECT 'Values are the same'
ELSE
SELECT 'Values are different'
-------------------
Values are the same
(1 row(s) affected)
I …Run Code Online (Sandbox Code Playgroud)