【问题标题】:Filter multiple columns by one condition Postgresql按一个条件过滤多列 Postgresql
【发布时间】:2020-03-04 10:22:07
【问题描述】:

我在 Postgresql 表中有多个相同类型的字段,即 bigint。我想选择 int 范围内的值(-2147483647、2147483647)。我试图做这样的事情,但是对于多个字段,它看起来并不好:

select * from test_table
where field1 between -2147483647 and 2147483647  
  and field2 between -2147483647 and 2147483647  
  and field3 between -2147483647 and 2147483647

如何对多列应用一个范围过滤?

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    您可以将int8range 与range operators 和字段值数组结合使用:

    SELECT *
    FROM test_table
    WHERE int8range(-2147483647, 2147483647) @> ANY(ARRAY[field1, field2, field3])
    

    【讨论】:

    • 非常感谢。太棒了!
    猜你喜欢
    • 2023-04-10
    • 2018-12-05
    • 1970-01-01
    • 2021-10-20
    • 2018-03-25
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多