我用OpenDataSource查到的列的順序怎麼和Excel中的順序不一樣

gopark 2004-01-02 04:54:31
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\eBook\xx.xls";User ID=Admin;
Password=;Extended properties=Excel 8.0')...[Sheet1$]
好像查到的列的順序是按首字母排序的,而不是EXCEL中的順序
...全文
84 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gopark 2004-01-05
  • 打赏
  • 举报
回复
谢谢各位大侠,分太少,不成敬意,望笑纳....
zjcxc 元老 2004-01-02
  • 打赏
  • 举报
回复
楼主可以考虑在Excel中,将第一列设置为字段名.

然后用动态SQL语句来解决字段的顺序问题.
zjcxc 元老 2004-01-02
  • 打赏
  • 举报
回复
这个是openrowset的限制,不仅Excel,其他数据库也如此.
gmlxf 2004-01-02
  • 打赏
  • 举报
回复
60多列?
--
一次写好了以后就不需要写了。
gopark 2004-01-02
  • 打赏
  • 举报
回复
To gmlxf(烛光)
我是说列的顺序
TO txlicenhe(马可)
可怜我的表有60多列,难道就没有更好的办法了吗...天啊.....
.....
gmlxf 2004-01-02
  • 打赏
  • 举报
回复
哈哈,误会了,理解错了。
原来是列的变动。
看来只有把列名按照自己的顺序重新排序而不用*了。
txlicenhe 2004-01-02
  • 打赏
  • 举报
回复
看来1楼误会了。
eg: Excel中四列
a1 b2 a2 b1
1 a 2 b

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\test.xls";User ID=Admin;
Password=;Extended properties=Excel 8.0')...[Sheet1$]
会显示
a1 a2 b1 b2
1 2 b a

如果要顺序相同的话需
SELECT a1,b2,a2,b1
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\test.xls";User ID=Admin;
Password=;Extended properties=Excel 8.0')...[Sheet1$]

gmlxf 2004-01-02
  • 打赏
  • 举报
回复
没有关系吧。你select后再排序就可以了,我想当在页面中列出来也还是按照一定的顺序排的,所以显示的时候用order by就可以了。
txlicenhe 2004-01-02
  • 打赏
  • 举报
回复
确实如此。
不过楼主可以自己指定顺序啊

eg:
SELECT a1,b2,a2,b1
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:\eBook\xx.xls";User ID=Admin;
Password=;Extended properties=Excel 8.0')...[Sheet1$]

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧