sql server 中的 CTE (With table as) 在 hive 中等效吗?

Posted

技术标签:

【中文标题】sql server 中的 CTE (With table as) 在 hive 中等效吗?【英文标题】:CTE (With table as) in sql server equivalent in hive? 【发布时间】:2019-04-11 14:15:37 【问题描述】:

我在 SQL Developer 中使用WITH table_name AS (select...;) 命令创建临时表并在以下查询中使用该临时表。 Hadoop Hive 中的类似命令是什么?

在 Hadoop Hive 上使用 SQL 助手用户界面。

我尝试了以下示例,它给出了错误-

创建表失败,80:

CREATE TEMPORARY TABLE temp1(col1 string);
CREATE TEMPORARY TABLE temp2 AS Select * from table_name; 

【问题讨论】:

您使用的是哪个版本的 Hive? 【参考方案1】:

也许你必须像这样写区分大小写:

CREATE TEMPORARY TABLE temp1(col1 STRING);

【讨论】:

【参考方案2】:

mysql 中相同的 CTE:

with your_table as (
select 'some value' --from etc etc
)

select * from your_table;

另一个例子:https://***.com/a/54960324/2700344

Hive CTE Official docs

【讨论】:

以上是关于sql server 中的 CTE (With table as) 在 hive 中等效吗?的主要内容,如果未能解决你的问题,请参考以下文章

SQL中使用WITH 语句的查询

T-SQL:CTE用法

SQL 中with的用法

SQL SERVER里面的with语句有啥作用?用过的师兄请帮忙

在sql server中利用with as实现递归功能

如何在 SQL Server 的表值函数中使用 CTE 语句