0

何らかのステートメントで Hive テーブルの列の値を決定したいと考えています。

たとえば、列はage次のとおりです。

if(some condition are satisfied) the value is 30, otherwise, the value is 10

したがって、すべての行を挿入した後、ステートメントが満たされた行の年齢は 30 で、他の行は 10 です。

私は次のようなクエリを使用しています:

insert overwrite table test_table select A.age from (select IF(condition, 30, 10) as age from some_other_table ) A;

しかし、if ステートメントは true と false に対してのみ機能するようです。助けてくれてありがとう!

4

2 に答える 2

2

condition実際にはブール値を返す必要がありますが、関係演算子と論理演算子を使用して任意の複雑さの要件を構築できます。

たとえば、身長が 160cm を超えるすべての男性に 30 歳を割り当て、その他のすべての男性に 10 歳を割り当てたい場合は、次のようにします。

select if(sex = "M" AND height >= 160, 30, 10) as age 
from some_other_table

それが役立つことを願っています。

于 2013-08-27T07:35:12.373 に答える