1.
是NUMERIC
(或DECIMAL
)常数,1
而是INTEGER
常数。在某些情况下,显式指定常量的数据类型很有用,以避免不必要的(或不希望的)隐式类型转换。
考虑例如
create table t(f1 int);
insert into t values (2);
然后select 1/f1 from t
返回0
(INTEGER
),而select 1./f1 from t
返回0.5
(DECIMAL
)。
可能会假设您的示例在比较的左侧有一DECIMAL
列,并且显式指定一个DECIMAL
常量可以通过避免隐式类型强制转换来稍微提高性能。
1.
由于句点,SQL Server将文字视为数字(1,0)而不是整数。可能是为了匹配表达式的数据类型而指定的(最佳实践)。就个人而言,我会指定1.0
这种情况。