【问题标题】:NOT IN in Hive QL不在 Hive QL 中
【发布时间】:2013-01-08 21:27:31
【问题描述】:

我正在将 SQL Server 存储过程转换为 HiveQL。

我怎样才能转换类似的东西:

SELECT * FROM table1 WHERE id NOT IN (7,6,5,4,2,12)

【问题讨论】:

标签: sql hive


【解决方案1】:

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT * FROM table1 WHERE NOT array_contains(array(7,6,5,4,2,12), id)
    

    【讨论】:

    • 支持,因为 NOT ARRAY_CONTAINS 解决了另一个问题,即 A 和 B 都不应该出现在数组中.. 比如 NOT ARRAY_CONTAINS(Array, A) 和 NOT ARRAY_CONTAINS(Array, B)
    【解决方案3】:

    根据documentation,它说你可以使用not in

    否定形式可以写成如下:

    from DomesticCat cat where cat.name not between 'A' and 'B'
    
    from DomesticCat cat where cat.name not in ( 'Foo', 'Bar', 'Baz' )
    

    您在问题中尝试查询时是否遇到错误?

    也请根据参考资料试一试。

    【讨论】:

    • 最初的问题是关于 HiveQL,而不是 HibernateQL
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多