我正在编写一个涉及多个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)
为什么不选择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)