Sql Union导致将varchar转换为数字时出错

Sql Union导致将varchar转换为数字时出错,sql,sql-server,Sql,Sql Server,我在重新发布我昨天的问题,添加了代码。 我正在创建一个新的表LAB_RESULT,作为两个表(Labs和CTE)的并集。名为result\u num(numeric(18,5))的列导致LAB\u result出现问题 首先使用显式数据类型声明表LAB_结果 CREATE TABLE dbo.LAB_RESULT ( [LAB_RESULT_CM_ID] VARCHAR (36), [RESULT_NUM] NUMERIC (18,5) ) INSERT INTO [dbo].

我在重新发布我昨天的问题,添加了代码。 我正在创建一个新的表LAB_RESULT,作为两个表(Labs和CTE)的并集。名为
result\u num
numeric(18,5)
)的列导致
LAB\u result
出现问题

首先使用显式数据类型声明表LAB_结果

CREATE TABLE dbo.LAB_RESULT
(
    [LAB_RESULT_CM_ID] VARCHAR (36),
    [RESULT_NUM] NUMERIC (18,5)
)

INSERT INTO [dbo].[LAB_RESULT] (LAB_RESULT_CM_ID, RESULT_NUM)
   SELECT LAB_RESULT_CM_ID, RESULT_NUM
   FROM [etl].[lab_result]
LAB\u结果
来自表
LABS
CTE
中的
varchar
列。我在A和B中都使用了
try\u cast
,以确保没有任何东西漏掉

因此,当我从(实验室U CTE)中选择时,我得到:

味精8114
将数据类型varchar转换为数字时出错

但是当我仅从
实验室
或仅从
CTE
中选择(所有这些都刚刚注释掉)时,数据加载良好

即使我使用
cast(null为数字)
,也会发生这种情况


有什么好处?我真的很想了解一些情况。蒂亚

您可能在导致问题的表或其他列上有一个触发器。其次,如果没有底层数据,则无法按照标题所示进行测试。根据标题,如果不是引发触发器,那么解决方案很简单。
SELECT LAB_RESULT_CM_ID, RESULT_NUM
FROM
    ((SELECT 
          NEWID() AS LAB_RESULT_CM_ID,
          CAST(NULL AS NUMERIC(18, 5)) AS RESULT_NUM
      FROM [dbo].[Labs] as labs

      UNION
      (SELECT
           NEWID() as LAB_RESULT_CM_ID,
           CAST(NULL as NUMERIC(18, 5)) AS RESULT_NUM
       FROM CTE)