You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何SQL的UNION ALL能识别不同字段?Datacamp模拟器是否有BUG?

关于UNION ALL结果列名的疑问解答

这不是Datacamp模拟器的BUG,是SQL的标准规则:

  • 当使用UNION/UNION ALL这类集合操作符时,最终结果集的列名由第一个查询语句的列名决定,后续查询的列名会被直接忽略,只要求各查询的列数量、对应位置的数据类型兼容即可。
  • 你的代码里第一个查询选取的是code列,所以最终结果集的列名就显示为code;第二个查询的country_code只是把对应位置的数据填充到这个列中,两者只要数据类型匹配就能完成合并。
  • 最后用ORDER BY code, year排序也是合法的,因为排序时识别的是结果集已经确定的列名(即第一个查询定义的code)。

你的SQL代码:

-- Select fields
SELECT code, year
  -- From economies
  FROM economies
    -- Set theory clause
    union all
-- Select fields
SELECT country_code, year
  -- From populations
  FROM populations
-- Order by code, year
ORDER BY code, year;

内容的提问来源于stack exchange,提问作者Aaron Tsai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 09:54:19