我正在尝试创建具有以下逻辑的Hive视图:
create view test.view as
select
distinct(
case
when substr(value_1, 1, 10) < "2016-01-01" then
regexp_extract(value_2,'(?i-sx:\\|([1-9][0-9]{0,3}x[1-9][0-9]{0,3})\\|)',1)
else
split(value_2, '\\|')[5]
end
) as value_3
from test.table;
但是当我运行它时,我得到以下输出:
FAILED: ParseException line 128:2 cannot recognize input near 'distinct' '(' 'case' in select expression
有谁知道我怎么写这个,所以我没有收到错误?或者告诉我为什么会这样?
答案 0 :(得分:1)
distinct
不是一个功能。它已应用于所有选定的列,并生成所有所选列的唯一组合。
试试这个:
select distinct case
when substr(value_1, 1, 10) < "2016-01-01"
then regexp_extract(value_2, '(?i-sx:\\|([1-9][0-9]{0,3}x[1-9][0-9]{0,3})\\|)', 1)
else split(value_2, '\\|') [5]
end as value_3
from test.table;
所以,这个:
select distinct (col), col2
与:
相同select distinct col, col2