在处理错误时,我注意到Server 2000在整型数据类型和字符串之间执行隐式转换,即使没有警告。因此,以下查询:
SELECT LEFT(123456789, '3')返回字符串123。
这是Server 2000中的错误(特性)吗?T的一个特性?还是SQL本身的一个特性?
发布于 2014-02-05 11:21:05
LEFT状态
character_expression 隐性数据是字符或二进制数据的表示。character_expression可以是常量、变量或列。character_expression可以是任何数据类型,但文本或ntext除外,可以隐式转换为varchar或nvarchar。否则,使用CAST函数显式转换character_expression。 integer_expression 另一种类型是一个正整数,它指定将返回多少个character_expression字符。
文档的数据类型转换页面清楚地显示了哪些对类型可以在之间隐式转换。int和varchar之间的转换在两个方向上都是隐含的。
所以我们讨论的是特性,而不是bug;我说的是talk,而不是SQL,因为我猜标准中没有提到这样的东西。但这只是猜测。
https://stackoverflow.com/questions/21576098
复制相似问题