我试图查询特定的格式化日期:
我有个问题:
SELECT
REGEXP_REPLACE(datewithoutdash,
'^(\\d{2})(\\d{2})(\\d{2})(.*)$','20\\1-\\2-\\3')
datewithdash
FROM table1 WHERE datewithdash < "2016-11-10";
为什么不能在新变量上使用where子句?
我得到这个错误:
失败:semanticexception[error 10004]:行26:14无效的表别名或列引用“datewithdash”:(可能的列名为:…)
2条答案
按热度按时间nbysray51#
配置单元无法识别别名。你需要把整个表达式再重复一遍。
jqjz2hbq2#
在计算同一查询中的where子句时,配置单元不知道select子句中的别名列名。不幸的是,您要么将其嵌套,要么将转换函数复制到where子句中:
或
另一个注意事项-该函数非常糟糕-您可能会使用内置的配置单元函数,如:
相反,它可能更清晰。