SQL类型转换错误:varchar转numeric,求关联查询显示描述字段方案
问题分析与解决
错误根源
你遇到的Error converting data type varchar to numeric错误,核心原因是JOIN关联条件类型不匹配且逻辑错误:
Articulo.codigo_bodega是numeric(10,0)类型,你却把它和Bodega.descripcion(varchar类型)做等值判断,SQL自动尝试将字符串转换为数值,触发类型转换错误。- 两张表的正确关联字段应该是
Articulo.codigo_bodega和Bodega.codigo,二者都是numeric(10,0)类型,是符合外键关联逻辑的匹配字段。
修正后的查询语句
要显示仓库名称(Bodega.descripcion)而非编码,调整后的SQL如下:
SELECT articulo.codigo, articulo.fecha_ingreso, articulo.valor, articulo.stockMinimo, -- 替换原codigo_bodega为仓库名称字段 bodega.descripcion AS nombre_bodega FROM [Bodega].[dbo].[Articulo] articulo LEFT JOIN [Bodega].[dbo].[Bodega] bodega ON articulo.codigo_bodega = bodega.codigo -- 修正关联条件
补充提示
- 给表添加别名(如
articulo、bodega)能让语句更简洁易读; - 用
AS给输出字段起别名(如nombre_bodega),能让结果集的列名更直观。
内容的提问来源于stack exchange,提问作者Gabriela.
相关产品推荐
相关产品推荐

