用数据说话:
sql1:
select * from dbo.customer where c_area='TW' and c_zip between '100' and '330' and c_qy=1
sql2:
select c_id,c_name,c_contr,c_zip,c_address,ordtotal,c_email,c_zk,c_kh1 from customer where c_area='tw'
and left(rtrim(ltrim(c_zip)),3)>='100' and left(rtrim(ltrim(c_zip)),3)<='330' and c_qy=1
不同之处在于精确到三位。而上面只可能匹配>=100到<=330的,而对于330001这样的编号就不会提取了。
用前者得到的数据总数为:62137,后者得到的数据为:62177,少了四十条。
因此,写SQL也要严谨!