首页 > 解决方案 > 使用“with”子句

问题描述

我正在尝试学习 SQL/databricks 平台,但在笔记本中使用 with 子句时遇到问题。

我正在尝试遵循本教程。不知道我做错了什么,但我认为这与我使用'union'有关。任何提示将不胜感激。 https://www.essentialsql.com/introduction-common-table-expressions-ctes/

with orgsrc
as
(

SELECT *
FROM vw_customers

UNION

SELECT *
FROM vw_customers_merge

)

我收到以下错误:

Error in SQL statement: ParseException: 
mismatched input '<EOF>' expecting {'(', 'SELECT', 'FROM', 'DESC', 'VALUES', 'TABLE', 'INSERT', 'DESCRIBE', 'MAP', 'MERGE', 'UPDATE', 'REDUCE'}(line 13, pos 1)

标签: sqlcommon-table-expressiondatabricks

解决方案


尝试这样的事情:

WITH orgsrc AS (
  SELECT * 
  FROM vw_customers

  UNION

  SELECT * 
  FROM vw_customers_merge
)
SELECT * FROM orgsrc

一些技巧:

  • 写出列列表而不是使用*
  • UNION ALL如果您不关心重复行,请使用
  • 所有后续查询的数据类型和列必须与第一个查询的数据类型和列匹配UNION

推荐阅读