- If your identifiers are always consistent, you should use
BETWEEN. - If your identifiers may or may not be sequential, use
IN.
Efficiency should not be the deciding factor here. Having said that, BETWEEN seems to be faster in all the examples I tested. For instance:
, , x = 1:
SELECT COUNT(*) FROM table1 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.55s
SELECT COUNT(*) FROM table1 WHERE x BETWEEN 1 AND 6;
Time taken: 0.54s
, x :
SELECT COUNT(*) FROM table1 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.65s
SELECT COUNT(*) FROM table1 WHERE x BETWEEN 1 AND 6;
Time taken: 0.36s
, id . , .
SELECT COUNT(*) FROM table2 WHERE x IN (1, 2, 3, 4, 5, 6);
Time taken: 0.00s
SELECT COUNT(*) FROM table2 WHERE x BETWEEN 1 AND 6;
Time taken: 0.00s
, , SQL, . , , .
. SQL Server Express 2008 R2. .