@Daniel Wu: Так что у нас есть? С заказанным ROW_NUMBER процесс, скорее всего, замедлится, да. И неупорядоченный один, скорее всего, назначит номера строк иначе, чем фактический порядок строк в таблице Excel. И поэтому мой ответ становится почти полностью мусором в этой ситуации. Извините, похоже, у меня на данный момент нет вариантов для вас. Если бы только это: вы могли бы нумеровать строки в оригинальном документе Excel? То есть добавьте столбец со значениями, представляющими фактические номера строк, чтобы вы могли фильтровать его в SQL.

у использовать следующий sql для чтения данных из Excel, но иногда мне нужно пропустить первые несколько строк. например, реальные данные начинаются со строки 5, поэтому мне нужно пропустить первые 4 строки, это выполнимо?

 SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
    'Excel 12.0;HDR=YES;Database=c:\daniel\test.xls',
    'SELECT * FROM [sheet1$]');

Ответы на вопрос(2)

Ваш ответ на вопрос