Фильтрация нескольких столбцов по одному условию Postgresql - PullRequest
2 голосов
/ 04 марта 2020

У меня есть несколько полей в таблице 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

Как применить фильтрацию по одному диапазону для нескольких столбцов?

1 Ответ

5 голосов
/ 04 марта 2020

Можно использовать int8range в сочетании с операторами диапазона и массив значений полей:

SELECT *
FROM test_table
WHERE int8range(-2147483647, 2147483647) @> ANY(ARRAY[field1, field2, field3])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...