今天早上我遇到了一些奇怪的事情,并认为我会提交评论.
有人可以解释为什么以下SQL查询在针对SQL 2008运行时打印"相等".数据库兼容级别设置为100.
if '' = ' '
print 'equal'
else
print 'not equal'
Run Code Online (Sandbox Code Playgroud)
这返回0:
select (LEN(' '))
Run Code Online (Sandbox Code Playgroud)
它似乎是自动修剪空间.我不知道在以前版本的SQL Server中是否就是这种情况,我不再需要测试它.
我遇到了这个,因为生产查询返回了错误的结果.我无法在任何地方找到这种行为.
有没有人有这方面的任何信息?
我写了一个查询
SELECT * FROM Users WHERE UserName = 'admin '
Run Code Online (Sandbox Code Playgroud)
错误打字.但我发现结果与之相同
SELECT * FROM Users WHERE UserName = 'admin'
Run Code Online (Sandbox Code Playgroud)
似乎SQL Server自动忽略了最后的空白区域.
谁能告诉我为什么?
仅供参考,该列UserName属于类型nvarchar(MAX).