sql-server-2008 – 空字符串:为什么或何时“等于”?
谁能解释原因
select case when '' = ' ' then 1 else 0 end,LEN(''),LEN(' '),DATALENGTH(''),DATALENGTH(' '); 产量 ----------- ----------- ----------- ----------- ----------- 1 0 0 0 1 这有趣的结果是在 create table test ( val varchar(10) ); insert into test values( '' ); update test set val = ' ' where val = ''; 更新确实会用空格替换空字符串,但where子句保持为true,并且update语句的重复执行会告诉您 (1 row(s) affected) 解决方法Trailing blanks explained:
这是上面提到的所有案例的一个众所周知的例子: DECLARE @a VARCHAR(10) DECLARE @b varchar(10) SET @a = '1' SET @b = '1 ' --with trailing blank SELECT 1 WHERE @a = @b AND @a NOT LIKE @b AND @b LIKE @a 这是关于trailing blanks and the (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQL中Having与Where的区别
- SQLServer : EXEC和sp_executesql的区别
- sql-server – 如何将主键设为AUTOINCREMENT
- ArcSDE for SQLServer完全备份恢复
- sql-server-2012 – 检测SQL Server中的锁定表或行
- tsql – T-SQL插入 – 在表中选择变量非常慢
- SQL SERVER2012中新增函数之字符串函数CONCAT详解
- 浅析SQL Server的分页方式 ISNULL与COALESCE性能比较
- ms访问 – 是否可以更改Access 2007中SQL编辑窗口中的字体?
- sql-server-2008 – SQL Server数据工具可以与SQL Server 2