相关疑难解决方法(0)

SQL Server 2008空字符串与空格

今天早上我遇到了一些奇怪的事情,并认为我会提交评论.

有人可以解释为什么以下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中是否就是这种情况,我不再需要测试它.

我遇到了这个,因为生产查询返回了错误的结果.我无法在任何地方找到这种行为.

有没有人有这方面的任何信息?

t-sql sql-server string-length sql-server-2008 datalength

81
推荐指数
4
解决办法
3万
查看次数

为什么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).

sql-server sql-server-2012

13
推荐指数
2
解决办法
4739
查看次数