11
我将使用以下sql从excel中读取数据,但有时我需要跳过前几行。例如真正的数据从第5行开始,所以我需要跳过前4行,这是可行的吗?excel的openrowset:我们可以跳过几行吗?
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 server是否可以并行加载数据,如果是这样的话,rownum不能反映文件中的位置,比如线程1加载前100行,线程2加载第100行,那么这是可能的第二百行被首先装入数据库 – 2011-02-08 23:39:44
@Daniel Wu:那么我们得到了什么?有了订购的ROW_NUMBER,这个过程很可能会放慢,是的。而无序的很可能会分配行号不同于Excel表中的行的实际顺序。所以我的回答在这种情况下几乎变成了垃圾。对不起,我似乎暂时没有选择。如果只有这样的话:你可能可以在原始Excel文档中对行进行编号吗?也就是说,添加一个包含表示实际行号的值的列,以便在SQL中筛选它。 – 2011-02-09 00:05:30