时间:2021-07-01 10:21:17 帮助过:31人阅读
SELECT ProductNumber + ‘-‘ + ProductLine + ‘-‘ + ProductModelID AS BikeSerialNum FROM Production.Product WHERE ProductSubCategoryID < 4
我们没有得到希望的结果,而得到了有点奇怪的错误消息:请把nvarchar值转换为 int。因为之前我们没有要求进行任何转换,所以这个错误很奇怪。这个查询的问题在于我们试图利用第一个连接符来连接字符值ProductNumber,利用第二个连接符连接另一个字符值ProductLine,最后连接的是ProductModelID字符值(它是一个整数)。
查询引擎会把连接符当成一个数学运算符,而不是一个字符。不管结果是什么,都需要更正这个表达式,以确保使用正确的数据类型。以下表达式执行了必要的类型转换,返回如图6-3所示的结果:
SELECT ProductNumber + ‘-‘ + ProductLine + ‘-‘ + CAST(ProductModelID AS char(4)) AS BikeSerialNum FROM Production.Product WHERE ProductSubCategoryID < 4
如果把整型值转换为字符类型就不会增加多余的空格了。查询引擎将把这些值用加号和连接符组合在一起,进行字符串连接运算,而不是和前面的数值进行加法或者减法运算了。
https://www.cnblogs.com/shuilangyizu/p/5952526.html
sql CAST用法
标签:arc 第一步 连接 har 函数调用 cas 表示 convert 目标