【发布时间】:2014-12-26 19:53:14
【问题描述】:
我尝试在 teradata 上运行以下查询,结果符合预期:
select column1 as c1Alias from my_table where column2 in ( c1Alias , 10 , 20 , 30) ;
但我尝试在 HIVE 上运行相同的查询,它会抛出异常,如下所示:
FAILED: SemanticException [Error 10004]: Line 1:44 Invalid table alias or column reference 'c1Alias': (possible column names are: .......)
我对为什么它在 HIVE 上失败并不感到惊讶,但对它在 Teradata 上的工作方式感到惊讶。
据我了解,子句按 WHERE >> SELECT 的顺序执行。显然,在 SELECT 子句中生成的别名不能在 WHERE 子句中使用。如果我在这里错了,请纠正我。
我真的很想知道它在 teradata 中是如何工作的?
【问题讨论】:
-
Teradata 允许您在 where 子句中使用别名,以及 group by 和 order by 子句。