在SQL Server 2017(14.0.2)中
请考虑下表:
CREATE TABLE expTest
(
someNumbers [NVARCHAR](10) NULL
)
假设您用一些值填充了表:
INSERT INTO expTest VALUES('²', '2')
为什么以下SELECT返回两个行?
SELECT *
FROM expTest
WHERE someNumbers = '2'
nvarchar
不会意识到'²'是unicode,而'2'是一个单独的值吗?如何(不使用UNICODE()函数)将该数据标识为非等效数据?
答案 0 :(得分:2)
Here是db <>小提琴。显示以下内容:
我认为指数只是作为数字的不同“大小写”对待,因此在不区分大小写的排序规则中将它们视为相同。
比较是区分大小写排序所期望的。