I有一个T-SQL代码(SQL Server 2012),该代码必须读取excel文件到临时表中。 我使用opendatasource这样做:
INSERT INTO #MyTable (id, F1)
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT 1)) AS id, F1
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.16.0','Data Source=FilePathMustBeHere;
Extended Properties="EXCEL 12.0;HDR=No;IMEX=1"')...['SheetNameMustBeHere$']
我的问题是:我可以100% - 确定#mytable.id值将与Excel文件中相应行的物理顺序相对应吗?
如果需要,我可以使用Openrowset而不是OpenDataSource。但是Excel文件肯定没有可以用我需要的顺序对读取行进行排序的列。我需要以与excel文件中的物理行相同的方式订购#mytable.id值。
short答案:否
为了确保数据以相同的顺序为单位,您需要订购的东西实际上表示数据顺序。
ROW_NUMBER
?),或者,,
电子表格有缺陷,并且它具有表示顺序的东西。首先修复电子表格,然后您可以
ORDER BY ClientID, ContactDate
所需的列。