Hive表“Employee”包含列“timerange”,数据为

timerange
1:10
1:13
1:17
1:21
1:26

如果最后一位数字范围在(0&4)之间,则数据必须更新为0。如果最后一位数字范围在(5&9)之间,则必须更新为5。

预期输出为
timerange
1:10
1:10
1:15
1:20
1:25

我怎样才能做到这一点?

最佳答案

您可以通过内置的字符串操作来做到这一点:

SELECT CASE WHEN SUBSTRING(timerange, LENGTH(timerange)) < "5"
            THEN CONCAT(SUBSTRING(timerange, 1, LENGTH(timerange) - 1), "0")
            ELSE CONCAT(SUBSTRING(timerange, 1, LENGTH(timerange) - 1), "5")
       END AS timerange
FROM Employee;

08-28 04:40