Я буду использовать следующий sql для чтения данных из excel, но иногда мне нужно пропустить первые несколько строк. например, реальные данные начинаются с строки 5, поэтому мне нужно пропустить первые 4 строки, это выполнимо?openrowset для excel: можем ли мы пропустить несколько строк?
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;Database=c:\daniel\test.xls',
'SELECT * FROM [sheet1$]');
, что замедлит процесс ETL для выполнения row_number(). И я не уверен, может ли sql-сервер загружать данные параллельно, если так rownum не может отразить позицию в файле, например, поток 1 загружает первые 100 строк, поток 2 загружает второй 100 строк, тогда это возможно первые 100 строк были загружены сначала в базу данных –
@ Даниэль Ву: Итак, что у нас получилось? При заказе ROW_NUMBER процесс, скорее всего, замедляется, да. И неупорядоченный, скорее всего, присвоит номера строк по-разному от фактического порядка строк на листе excel. И поэтому мой ответ становится почти полностью мусором в этой ситуации. Извините, похоже, у меня пока что нет вариантов. Если бы это было: вы могли бы указать числа в оригинальном документе excel? То есть, добавьте столбец со значениями, представляющими фактические номера строк, чтобы вы могли фильтровать его в SQL. –