连接不同类型的字段时的隐式强制转换



我将一个具有以前导0格式化的个位数的字段连接到另一个没有前导0的字段。当我意识到这一点时,我测试了我的查询,结果发现它实际上运行得很完美。然后我意识到我做了什么。。。我已经将nvarchar字段连接到int字段。我本以为sql会给我一个错误,但显然它将字符字段转换为int字段

我意识到这可能不是一个好的做法,我现在计划自己明确地进行强制转换,但我只是想知道SQL是否有规则来决定在这种情况下要强制转换哪个字段。如何防止它将int字段强制转换为字符类型(在这种情况下,我的查询将不再正常工作)?

确实存在规则。

CAST和CONVERT(Transact-SQL)来了解可以将什么转换为什么("隐式转换"部分)。

数据类型优先级(Transact-SQL),以了解除非特别要求,否则将转换为什么。

相关内容

最新更新