gpt4 book ai didi

java - 使用字符串函数进行Hive查询

转载 作者:行者123 更新时间:2023-12-02 22:05:06 33 4
gpt4 key购买 nike

我需要根据字符串的长度来操作它。我已经尝试了以下内容,但出现了异常。

要求是这样的。

我在列号为123456的字符串中,结果应为12-34-56。如果是1234,则为12-34-00。如果只有2位数字,则为12-00-00。

IF(LENGTH(numbers) = 2,concat(numbers,'-00-00') OR LENGTH(numbers) = 4,concat(SUBSTR(numbers,1,2),'-',SUBSTR(numbers,3,2),'-00') OR LENGTH(numbers) = 6,concat(SUBSTR(numbers,1,2),'-',SUBSTR(numbers,3,2),SUBSTR(msg.numbers,5,2))) as finalnumbers

异常(exception)是:
FAILED: ClassCastException org.apache.hadoop.hive.serde2.objectinspector.primitive.WritableStringObjectInspector cannot be cast to org.apache.hadoop.hive.serde2.objectinspector.primitive.BooleanObjectInspector

有什么帮助吗?

最佳答案

可以使用Hive查询中的CASE和WHEN来实现。该论坛准确地解释了conditional functions

CASE 
WHEN (LENGTH(numbers) = "6") THEN concat(substring(numbers,1,2),'-',substring(numbers,3,2),'-',substring(numbers,5,2))
WHEN (LENGTH(numbers) = "4") THEN concat(substring(numbers,1,2),'-',substring(numbers,3,2),'-00')
WHEN (LENGTH(numbers) = "2") THEN concat(numbers,'-00-00') as finalnumbers

关于java - 使用字符串函数进行Hive查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26483604/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com