3
當AID是SQL Server中的INT
類型時,AID = 10
或AID = '10'
之間的區別是什麼?Where和Where中的Int和Varchar(SQL Server)的區別?
Select *
from ATable
where AID = '10'
和
Select *
from ATable
where AID = 10
當AID是SQL Server中的INT
類型時,AID = 10
或AID = '10'
之間的區別是什麼?Where和Where中的Int和Varchar(SQL Server)的區別?
Select *
from ATable
where AID = '10'
和
Select *
from ATable
where AID = 10
不同的是,SQL需要做的轉換,以便將varchar
不斷比較,以你列的類型。
如果你表現出的執行計劃的第一個查詢,你會看到類似這樣的:
CONVERT_IMPLICIT(int, [@1], 0)
編輯
在上述情況下,恆定的轉換隻會有一個小的性能影響。但是,如果轉換是在列(而不是常量)上完成的,則可能導致掃描,從而導致更嚴重的後果。
按照萊姆斯的回答,您可以檢查轉換here
+1的鏈接的優先順序。我不知道有關於優先順序的文檔。感謝分享。 – brian