2017-05-24 19 views
0

既存のテーブルに基づいて新しいHiveテーブルを作成しようとしています。私は元のテーブルの2つの別々の列から1つの結合された列を作成することを可能にするifステートメントで助けが必要です。列new_name & old_itemとuh_new_nameとuh_old_itemは同じデータを持ち、1つの列が必要です。私はテーブルをハイブから変更することはできません。最終的にはid、open_time、そして列のコンボが必要です。ここで別のテーブルに基づいて条件付き列を使用して新しいハイブテーブルを作成する

は、テーブルを作成するために私のコードです:

CREATE TABLE CIs 
    AS SELECT id, open_time, new_name, uh_new_name, old_item, uh_old_item from sm 
     where open_time like '2016%' or open_time like '2017%' 
     order by open_time desc; 

ここで私が必要組み合わせの列の後ろの一般的なロジックされています

If id like 'AB%' then old_item else new_item as combo_code 
IF id like 'AB%' then uh_old_item else uh_new_item as combo_name 

答えて

0

これはちょうどあなたの一環として、単純なcase文を必要とします選択:

case when id like 'AB%' then old_item else new_item end as combo_code, 
case when id like 'AB%' then uh_old_item else uh_new_item end as combo_name 
関連する問題