Если первичными ключами записей являются 1,3,4,5,6,8
1,3,4,5,6,8
Я хочу выбрать записи с помощью pk: 1,6
1,6
Примечание
Я не знаю, какие идентификаторы непоследовательны
SELECT * FROM your_table AS a LEFT JOIN your_table AS b ON a.key_column = b.key_column - 1 WHERE b.key_column IS NULL
Как насчет этого?
SELECT * FROM [MyTable] WHERE [MyId] NOT IN ( SELECT [MyId] - 1 FROM [MyTable] )
Почему бы не использовать предложение where в запросе SQL?
where
select * from your_table where id in (1, 6)
Помните, что в выбранной вами БД строки, как правило, не являются "последовательными", если вы не заказали их специально. Они просто оказываются в правильном порядке, если вы не указали заказ по.
Небольшое улучшение для решения, предложенного Робин Дей
SELECT [MyId] + 1 FROM [MyTable] WHERE [MyId] NOT IN ( SELECT [MyId] - 1 FROM [MyTable] ) ORDER BY [MyId] + 1