1. 程式人生 > 實用技巧 >Hive學習小記-(2)巨集命令

Hive學習小記-(2)巨集命令

巨集命令

巨集命令是在HQL中呼叫其他函式和操作符來定義函式的功能。
比較適合做分析時為一些臨時需要用到很多次的繁瑣表示式封裝一下,取個簡短點的別名以便重複呼叫例子

例子

-- 巨集只能是臨時巨集,只在本次回話中可見、有效,需要將巨集指令碼放在SQL指令碼的頭部
-- 一個根據生日推算星座的巨集命令
DROP TEMPORARY MACRO IF EXIST MACRO_GET_XINGZUO;
CREATE TEMPORARY MACRO MACRO_GET_XINGZUO(BIRTHDAY STRING)
CASE WHEN BIRTHDAY>='0101' AND BIRTHDAY<=
'0119' THEN '魔羯座' WHEN BIRTHDAY>='0120' AND BIRTHDAY<='0218' THEN '水瓶座' WHEN BIRTHDAY>='0219' AND BIRTHDAY<='0320' THEN '雙魚座' WHEN BIRTHDAY>='0321' AND BIRTHDAY<='0420' THEN '白羊座' ...... WHEN BIRTHDAY>='1122' AND BIRTHDAY<='1221' THEN '射手座' WHEN BIRTHDAY>=
'1222' AND BIRTHDAY<='1231' THEN '魔羯座' ELSE NULL END;
之後使用:
SELECT MACRO_GET_XINGZUO(BIRTHDAY) FROM TB_CUSTOMER;

參考:https://segmentfault.com/a/1190000009816609