【问题标题】:Hive - find 2 characters anywhere in the string/row - RLIKEHive - 在字符串/行的任意位置找到 2 个字符 - RLIKE
【发布时间】:2020-01-30 05:27:16
【问题描述】:

如何获取仅分配给“USA_RBB_WA_BU”的“_WA”数据的数据? 但是,我查看的列包含 _WA 和 _SA (USA_CA_SAWANT)

我用过,

                        select....
                         'USA_RBB_WA_BU' AS State ,
                         District 
                         from TABLE where district like '%_WA%'


                        select   ...
                         'USA_RBB_NSW_BU' AS State ,
                         District 
                         from TABLE where district like '%_SA%'

但是我最终得到了下面的数据输出表

**state                  district**
USA_RBB_NSW_BU          USA_CA_SAWANT
USA_RBB_WA_BU           USA_CA_SAWANT
USA_RBB_NSW_BU          USA_CA_SAWANT
USA_RBB_WA_BU           USA_CA_SAWANT

我试过了

                        select....
                         'USA_RBB_WA_BU' AS State ,
                         District 
                         from TABLE where district like '_WA%'

                         output was  was 0 results in hive

【问题讨论】:

    标签: sql hive hiveql sql-like regexp-like


    【解决方案1】:

    where district rlike '_WA' 可以正常工作(如果字符串包含 _WA,则返回 TRUE)

    如果您希望字符串在_WA 之前和之后包含某些内容,请添加.+(任何字符一次或多次):

    where district rlike '.+_WA.+'
    

    【讨论】:

    • 感谢您的回复。但是,输出为 0 结果。我正在寻找字符串中任何位置的“_WA”。匹配时不应该只使用“WA”,而是完全匹配“_WA”我上面的代码发现“WA”是错误的,因为“USA_CA_SAWANT”应该是“来自像'%_SA%'这样的区域的表”的一部分。感谢您的意见
    • @YJG rlike '_WA' 完全按照您的要求工作 - 字符串中的任何位置“_WA”。
    • 感谢您的回复,是的 = 区域 rlike '_WA' 完全按预期工作。糟糕的是,我之前只注意到你的答案中的 where 区 rlike '.+_WA.+'。再次感谢
    【解决方案2】:

    我猜你想在这里转义_。试试下面 -

    SELECT <FIELD_LIST>
           'USA_RBB_WA_BU' AS State ,
           District 
    FROM TABLE
    WHERE district RLIKE '.*_WA%'
    

    【讨论】:

    • 感谢 Ankit 的回复。但是,输出为 0 结果,例如 leftjoin 。我正在寻找字符串中任何位置的“_WA”。匹配时不应该只使用“WA”,而是完全匹配“_WA”我上面的代码发现“WA”是错误的,因为“USA_CA_SAWANT”应该是“来自像'%_SA%'这样的区域的表”的一部分。感谢您的意见
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多