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

Snowflake SQL执行全外连接无法获取全部行问题求助

问题分析与解决方案

你的SQL语句存在两个关键问题,导致无法得到预期结果:

  1. 字段名拼写错误:表1的销售额字段是Sales_1,表2是Sales_2,但你在查询中写成了table_1.sales和table2.sales,这会导致无法正确读取数据。
  2. 输出列设计不符合需求:你需要分别保留Sales_1和Sales_2列,而不是用coalesce合并成单个列,否则无法区分两张表的原始数据。

另外你预期的结果行存在错误:表2中Spices记录的Category和Date都有有效值,全外连接后这两个字段应该显示Spices和2020-10-10,而非NULL。

正确的Snowflake SQL语句

SELECT 
    COALESCE(table_1.Category, table_2.Category) AS Category,
    COALESCE(table_1.Date, table_2.Date) AS Date,
    table_1.Sales_1,
    table_2.Sales_2
FROM table_1
FULL OUTER JOIN table_2 
    ON table_1.Category = table_2.Category;

执行结果说明

运行上述语句后,会包含你需要的Spices相关行:

Category  Date        Sales_1     Sales_2
Spices    2020-10-10  NULL        90748.89

这行数据准确反映了:Spices仅存在于表2中,因此表1的Sales_1为NULL,表2的Sales_2显示对应数值,同时保留了表2中该记录的Category和Date值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 08:25:24