Moh*_*mad 3 sql-server types where-clause
AID = 10或者AID = '10'当AID是INTSQL Server中的类型时有什么区别?
Select *
from ATable
where AID = '10'
Run Code Online (Sandbox Code Playgroud)
和
Select *
from ATable
where AID = 10
Run Code Online (Sandbox Code Playgroud)
不同之处在于SQL需要进行转换才能将varchar常量与列的类型进行比较.
如果您显示第一个查询的执行计划,您将看到如下内容:
CONVERT_IMPLICIT(int, [@1], 0)
Run Code Online (Sandbox Code Playgroud)
编辑
在上面的例子中,常量的转换只会对性能产生很小的影响.但是,如果转换是在列上完成的(而不是常量),则可能导致扫描更严重的后果.
根据Remus的回答,您可以在此处查看转换优先顺序
| 归档时间: |
|
| 查看次数: |
1600 次 |
| 最近记录: |