I have a 'range' of integers (in this case destination ports) that occur:

For example: 33848-33254.

I want to select 'all' of these without having to do one at a time. is there a range operator? Or should I just use 'between'?


You can use BETWEEN or greater than/less than operators:

select *
from yourtable
where col1 >= 33254 and col1 <= 33848;


select *
from yourtable
where col1 between 33254 and 33848;

see SQL Fiddle with Demo

  • I've been told that it's better to use the lt/gt ops, because "performance". Is that a lie? – jcolebrand Sep 26 '12 at 21:34
  • @jcolebrand I am not sure, we probably need feedback from some of the other experts on the site. – Taryn Sep 26 '12 at 21:46
  • 2
    @jcolebrand: yes that's a lie. between will work just as fast as using < and >. And that's true for almost all DBMS, not only Postgres – a_horse_with_no_name Sep 26 '12 at 21:46
  • A question please, Could it works with 'between' if columns where store the number is type text. Thanks! – Fernando Pie Feb 7 '17 at 19:55

BETWEEN is your friend, as in

SELECT column_name(s)
FROM table_name
WHERE column_name
BETWEEN value1 AND value2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.