T-SQL联合的数字结果空白

dva*_*ria 1 sql t-sql union

我正在编写一个涉及多个UNIONS的Transact-SQL查询,其中第二列的数据类型是int.第一列的数据类型是varchar.

这是我遇到的问题的一个例子.在下面的SQL中,查询将不会运行,因为它不会让我将最后一个SELECT语句的第二列留空.我在那里放了一个空的varchar(''),但它需要一个int,所以我被迫输入一个像0这样的虚拟值?

SELECT product, price
  FROM tableA    
UNION ALL    
SELECT '', SUM(price)
  FROM tableB    
UNION ALL    
SELECT '', ''
  FROM tableC
Run Code Online (Sandbox Code Playgroud)

Fal*_*con 5

为什么不选择null并在真正需要时将其强制转换为数字?

SELECT product, price
FROM tableA

UNION ALL

SELECT '', SUM(price)
FROM tableB

UNION ALL

SELECT 'space', NULL
FROM tableC
Run Code Online (Sandbox Code Playgroud)