两个表union时报从数据类型 varchar 转换为 numeric 时出错。

通过sql语句,做两张结构相同的表,其中“大类”(红框内)是varchar型,多选字段,通过数字加"逗号"组成。如下图:

image.png

我通过表间关联,把“大类”的“数字”替换成文字。如下图:

表1:

image.png

表2:

image.png

目前分开对两个表的“大类”进行关联处理后,显示记录正常,如上图。但UNION all就会报错。报错内容为:[SQL Server]从数据类型 varchar 转换为 numeric 时出错。在剔除大类后两个表UNION all 就不报错。所以确认肯定是他的问题,但不知道到底是什么情况。请赐教。大类的内容不为空,都有内容。关联的语句为:

stuff((SELECT ',' + uf_ywlxyjcd.mc FROM uf_ywlxyjcd  WHERE ',' + uf_ztbht.dl + ',' LIKE '%,' + CAST (uf_ywlxyjcd.id AS VARCHAR (10)) + ',%' FOR xml path ('')),1,1,'')AS '大类'

其中:uf_ywlxyjcd.mc为参数表内的大类名称,uf_ztbht.dl为截图表显示的大类字段。

xw0406 发布于 2019-8-7 16:35
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
张洪威Lv6高级互助
发布于2019-8-7 16:42

str(dl)

用str 函数把字段转成varchar看看。


  • xw0406 xw0406(提问者) 可是dl的类型已经是varchar了呀。
    2019-08-07 17:06 
  • 2关注人数
  • 648浏览人数
  • 最后回答于:2019-8-7 16:42
    请选择关闭问题的原因
    确定 取消
    返回顶部