'的含义' sql在查询中

时间:2014-11-16 09:24:57

标签: sql sql-server

以下两个查询之间有什么区别?

WHERE DeviceID = '1339750411' and DT.McId = '40'

WHERE DeviceID = '1339750411' and DT.McId = 40

以上两个查询限制都会返回相同的结果。

McId是我的SQL Server数据库中的整数值。

感谢您的帮助。

1 个答案:

答案 0 :(得分:13)

单引号(' ')表示T-SQL中的字符串文字

第一个WHERE子句将'40'作为字符串,但在与int进行比较时,SQL Server会自动将其转换为int列(DT.McId)。

选项#2更好:如果它是int列,那么与字符串进行比较没有意义 - 它是int,所以对待它像int

选项#2不会产生隐式转换,因此在性能方面更好