Hive 編程專題 之 – 列組合與算術組合

  • 2019 年 12 月 25 日
  • 筆記

列組合

環境:

Hive: 2.7.7  Oracle SQL Developer  Cloudera JDBC Driver  

案例:

select type + '.' + type_desc + ': ' + nameobject as full_name,type,type_desc,nameobject  from tblobj2  limit 10  

錯誤:

1 – 使用 Oracle SQL Developer 執行上述 HQL 語句第一列為 null :

image

解決方案:

select concat( type ,'.' , type_desc , ': ', nameobject ) as full_name,type,type_desc,nameobject  from tblobj2  limit 10  

image

用 || 快捷符號也可以連接字符串或者文本列

select type || type_desc || nameobject  from tblobj2  limit 10  

算術組合

環境:

Hive: 2.7.7  Oracle SQL Developer  Cloudera JDBC Driver  

案例:

select object_id,schema_id  , object_id + schema_id  , object_id-schema_id  ,object_id*schema_id  ,object_id/schema_id  ,object_id % schema_id  , object_id | schema_id  --, object_id & schema_id  , object_id ^ schema_id  , ~schema_id  from tblobj2  limit 10  

異常:

  1. 在運行被注釋掉的表達式 object_id & schema_id 時,出現輸入 schema_id 的對話框:

image

解決方案:

select object_id,schema_id  , object_id + schema_id  , object_id-schema_id  ,object_id*schema_id  ,object_id/schema_id  ,object_id % schema_id  , object_id | schema_id  , object_id & (schema_id)  , object_id ^ schema_id  , ~schema_id  from tblobj2  limit 10  

解決問題的關鍵在於 object_id & (schema_id)