爲什麼當where子句中的目標列是char(20)時,以下內容會返回結果?SQL char到varchar的比較工作,爲什麼?
declare @pallettag varchar(20)
set @pallettag = '168531'
--set @pallettag = @pallettag + SPACE(20 - Len(@pallettag))
select s.ROWID, s.SUBLOTCODE + '*', @pallettag + '*'
from IMSUBLOT as s
where s.SUBLOTCODE = @pallettag
s.SUBLOTCODE被定義爲char(20)我希望只有我去掉,我添加所需的空間的第三行獲得的結果。
這裏是我發現的完整解釋http://support.microsoft.com/kb/316626 –