为什么在SQL Server 2014中忽略空格文本



当我比较这样的文本时:

'a' = 'a '

结果是真的,但我原以为是假的。

你知道为什么结果是真的吗?我能做点什么来解决这个问题吗?

LIKE运算符不填充尾部空格:
SELECT * FROM basePath WHERE 'a' LIKE 'a '

更多信息可在此处找到:https://dba.stackexchange.com/questions/56876/sql-server-auto-trim-of-varchar-value-in-equal-comparison-but-not-like-compariso

您可以使用DATALENGTH()

示例

SELECT * FROM TableName WHERE DATALENGT('a') = DATALENGTH('a ')

DATALENGT('a')返回结果为1
DATALENGTH('a ')返回结果为2,包括空格文本。

请查看db<>fiddle以供参考。

最新更新