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
異常:
- 在運行被注釋掉的表達式 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)