有人可以向我解释这个查询的结果吗?

时间:2011-04-07 14:57:57

标签: sql-server tsql

SELECT 'Equal'
WHERE ' ' = ''

结果:

-----
Equal

(1 row(s) affected)

2 个答案:

答案 0 :(得分:7)

在使用=运算符比较字符串时,SQL Server不考虑尾随空格。这就是为什么它认为''相当于''。

这是一个解释语义的页面:http://support.microsoft.com/kb/316626

答案 1 :(得分:0)

SQL Server将' ' = ''评估为等于TRUE的布尔类型,因此它将返回您在SELECT中指定的字符串文字。

同样会发生:SELECT'Equal'WHERE 1 = 1