Utilizaré el siguiente sql para leer los datos de Excel, pero a veces necesito saltear varias filas. Por ejemplo, los datos reales comienzan en la línea 5, así que debo omitir las primeras 4 filas, ¿es eso factible?openrowset para excel: ¿podemos omitir varias filas?
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;HDR=YES;Database=c:\daniel\test.xls',
'SELECT * FROM [sheet1$]');
que ralentizará el proceso de ETL para hacer row_number(). Y no estoy seguro de si el servidor sql puede cargar los datos en paralelo, si es así, el rownum no puede reflejar la posición en el archivo, como el hilo 1 carga las primeras 100 filas, el hilo 2 carga las otras 100 filas, entonces es posible las primeras 100 filas se cargaron primero en la base de datos –
@Daniel Wu: Entonces, ¿qué tenemos? Con un ROW_NUMBER ordenado, es muy probable que el proceso se ralentice, sí. Y el desordenado es muy probable que asigne números de fila de manera diferente al orden real de las filas en la hoja de Excel. Y entonces mi respuesta se vuelve casi completamente basura en esta situación. Lo siento, parece que me he quedado sin opciones para ti por el momento. Si solo esto: ¿podría numerar las filas en el documento original de Excel? Es decir, agregue una columna con valores que representen los números de filas reales, de modo que pueda filtrar en SQL. –