使用IF的SQL字符串比较
发布时间:2020-12-12 06:35:20 所属栏目:MsSql教程 来源:网络整理
导读:这可能是一个愚蠢的问题,但任何人都可以解释为什么SQL返回’False’ IF 'test' = ' test' -- notice leading space SELECT 'True'ELSE SELECT 'False' 但是返回’True’ IF 'test' = 'test ' -- notice trailing space SELECT 'True'ELSE SELECT 'False' 编辑
这可能是一个愚蠢的问题,但任何人都可以解释为什么SQL返回’False’
IF 'test' = ' test' -- notice leading space SELECT 'True' ELSE SELECT 'False' 但是返回’True’ IF 'test' = 'test ' -- notice trailing space SELECT 'True' ELSE SELECT 'False' 编辑: 我正在使用SQL Server 2008 R2 解决方法尾随空格被忽略.如果你想真正测试它们是否相同,那么这样的事情: DECLARE @foo nvarchar(50) = 'foo' DECLARE @foo2 nvarchar(50) = 'foo ' -- trailing space IF @foo = @foo2 AND DATALENGTH(@foo) = DATALENGTH(@foo2) --LEN ignores trailing spaces SELECT 'true' ELSE SELECT 'false' 为什么你的例子是真的: http://www.timvw.be/2013/04/27/the-curious-case-of-trailing-spaces-in-sql/ 根据http://www.andrew.cmu.edu/user/shadow/sql/sql1992.txt:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |