我们从今天的生产中获得了有趣的问题:)现在一切都很好,但我仍然不明白一件事。让我告诉你这个问题。SQL Server与空白空间的nvarchar比较
IF OBJECT_ID('tempdb.dbo.#results', 'U') IS NOT NULL
DROP TABLE #results;
CREATE TABLE #results(
[id] smallint,
[name] nvarchar(128)
)
insert into #results values (1, 'JOHN NOWAK '), (2, 'frog'), (3, 'wine')
declare @nazwa_p nvarchar(128) = 'JOHN NOWAK';
SELECT * FROM #results WHERE [name] = @nazwa_p
SELECT * FROM #results WHERE [name] like @nazwa_p
首先查询结果
1 JOHN NOWAK
第二个查询给我什么。这是为什么? =
运营商是否运行RTRIM()
方法?
感谢任何答案。
感谢您的回答,我们已经添加了通配符匹配%,但是我们不知道在等号比较中忽略了尾部空格,我找不到在文档:) – Zabaa
[这是ANSI标准](https://support.microsoft.com/en-us/help/316626/inf-how-sql-server-compares-strings-with-trailing-spaces)。如果你愿意,你可以将你的实例设置为**而不是** – scsimon