以下两个查询之间有什么区别?
WHERE DeviceID = '1339750411' and DT.McId = '40'
WHERE DeviceID = '1339750411' and DT.McId = 40
以上两个查询限制都会返回相同的结果。
McId
是我的SQL Server数据库中的整数值。
感谢您的帮助。
答案 0 :(得分:13)
单引号(' '
)表示T-SQL中的字符串文字。
第一个WHERE
子句将'40'
作为字符串,但在与int
进行比较时,SQL Server会自动将其转换为int
列(DT.McId
)。
选项#2更好:如果它是int
列,那么与字符串进行比较没有意义 - 它是int
,所以对待它像int
。
选项#2不会产生隐式转换,因此在性能方面更好