hive 不适用udf函数 根据生日算星座
在 Hive 中,可以使用 CASE WHEN 语句来根据生日计算星座。以下是示例代码:
SELECT
CASE
WHEN ((MONTH(birthday) = 3) AND (DAY(birthday) >= 21)) OR ((MONTH(birthday) = 4) AND (DAY(birthday) <= 19)) THEN 'Aries'
WHEN ((MONTH(birthday) = 4) AND (DAY(birthday) >= 20)) OR ((MONTH(birthday) = 5) AND (DAY(birthday) <= 20)) THEN 'Taurus'
WHEN ((MONTH(birthday) = 5) AND (DAY(birthday) >= 21)) OR ((MONTH(birthday) = 6) AND (DAY(birthday) <= 20)) THEN 'Gemini'
WHEN ((MONTH(birthday) = 6) AND (DAY(birthday) >= 21)) OR ((MONTH(birthday) = 7) AND (DAY(birthday) <= 22)) THEN 'Cancer'
WHEN ((MONTH(birthday) = 7) AND (DAY(birthday) >= 23)) OR ((MONTH(birthday) = 8) AND (DAY(birthday) <= 22)) THEN 'Leo'
WHEN ((MONTH(birthday) = 8) AND (DAY(birthday) >= 23)) OR ((MONTH(birthday) = 9) AND (DAY(birthday) <= 22)) THEN 'Virgo'
WHEN ((MONTH(birthday) = 9) AND (DAY(birthday) >= 23)) OR ((MONTH(birthday) = 10) AND (DAY(birthday) <= 22)) THEN 'Libra'
WHEN ((MONTH(birthday) = 10) AND (DAY(birthday) >= 23)) OR ((MONTH(birthday) = 11) AND (DAY(birthday) <= 21)) THEN 'Scorpio'
WHEN ((MONTH(birthday) = 11) AND (DAY(birthday) >= 22)) OR ((MONTH(birthday) = 12) AND (DAY(birthday) <= 21)) THEN 'Sagittarius'
WHEN ((MONTH(birthday) = 12) AND (DAY(birthday) >= 22)) OR ((MONTH(birthday) = 1) AND (DAY(birthday) <= 19)) THEN 'Capricorn'
WHEN ((MONTH(birthday) = 1) AND (DAY(birthday) >= 20)) OR ((MONTH(birthday) = 2) AND (DAY(birthday) <= 18)) THEN 'Aquarius'
ELSE 'Pisces'
END AS zodiac
FROM your_table;
以上代码会在查询结果中添加一列名为 zodiac 的列,其中包含每个人的星座。请将 your_table 替换为您实际的表名
原文地址: https://www.cveoy.top/t/topic/g6eZ 著作权归作者所有。请勿转载和采集!