openrowset for excel: can we skip several rows?

前端 未结 2 625
醉话见心
醉话见心 2020-12-19 00:46

I will use the following sql to read data from excel, but sometimes I need to skip first several rows. e.g the real data begins from line 5, so I need to skip the first 4 ro

2条回答
  •  感动是毒
    2020-12-19 01:12

    This will number the rows being obtained, with no specific order (as luck would have it):

    SELECT *
    FROM (
      SELECT *, ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS rownum
      FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
        'Excel 12.0;HDR=YES;Database=c:\daniel\test.xls',
        'SELECT * FROM [sheet1$]')
    ) s
    WHERE rownum > 4;
    

    You may want to specify some order, if you see fit, by changing the rownum definition like this:

    ROW_NUMBER() OVER (ORDER BY specific_column_list) AS rownum
    

提交回复
热议问题