Sql server sql查询中的条件2='2'如何返回true?

Sql server sql查询中的条件2='2'如何返回true?,sql-server,Sql Server,下面的查询如何为条件返回true Select * from Table_name Where 2='2' 而在 Select * from Table_name Where 3='2' 比较在这里是如何工作的?从表2='2'中选择* SQL Server将在整数上下文中将字符串转换为整数 所以2='2'总是正确的。2='3'不是从varchar到int的隐式转换:2=2永远是真的,但3=2永远不会。谢谢Tim,如果我不想隐式转换?如果你不想隐式转换,为什么要将varchar与int进行比

下面的查询如何为条件返回true

Select * from Table_name Where 2='2'
而在

Select * from Table_name Where 3='2' 
比较在这里是如何工作的?

从表2='2'中选择*

SQL Server将在整数上下文中将字符串转换为整数


所以2='2'总是正确的。2='3'不是从varchar到int的隐式转换:2=2永远是真的,但3=2永远不会。谢谢Tim,如果我不想隐式转换?如果你不想隐式转换,为什么要将varchar与int进行比较?如果您不想让sql server尝试帮助您,请不要将苹果与橙子进行比较。虽然sql server在整数上下文中将字符串转换为整数,但您并没有真正解释上下文为何为整数。