Databricks AnalysisException:“l”列不存在

问题描述 投票:0回答:1

由于数据敏感,此问题已被删除

databricks azure-databricks
1个回答
1
投票
  • 交叉连接(或任何连接)在使用表值函数时选择不识别列的主要原因是连接仅用于表

  • 要使用表值函数,必须使用

    cross apply or outer apply
    。但是Databricks sql不支持这些。

  • 以下是我使用的演示数据:

enter image description here

  • 我尝试使用以下查询在表值函数上使用内部联接并得到相同的错误:
select d1.*,a from demo1 inner join (values(if(d1.team = 'OG',2,1))) a;

enter image description here

  • 相反,使用 select 查询,连接按照它们的工作方式工作:
select d1.*,a.no_of_wins from demo1 d1 inner join (select id,case team when 'OG' then 2 when 'TS' then 1 end as no_of_wins from demo1) a on d1.id=a.id;

enter image description here

  • 因此,解决此问题的方法是用
    SELECT
    语句替换所有使用连接的表值函数。
© www.soinside.com 2019 - 2024. All rights reserved.