【问题标题】:Read 50% of a table excluding the last row读取表的 50%,不包括最后一行
【发布时间】:2021-08-06 23:27:00
【问题描述】:

我正在阅读一个包含超过一百万条记录和 29 列的 Excel,我阅读这个 Excel 就像它是 Microsoft SQL Server 中的一个表一样。

select * from [file $]

此表只有分类字段、金额和日期,没有唯一的 id 或增量字段(我无法创建或编辑表)。由于数据量大,需要分2块读取。

我如何阅读第一个 50%,然后是另一个 50%

我正在测试:

select top (50) percent * 
from [file $] 
order by name asc

接着是:

select top (50) percent * 
from [file $] 
order by name desc

但最后一行会重复,我怎么能排除它?

我已经读到在某些情况下它不会正确返回数据。

我正在考虑 2 个 50% 的块,但它们可以是任意数字。我只需要确保信息完整。

任何评论都会有很大帮助。

谢谢,

【问题讨论】:

  • 具体为什么要分两块读?
  • 你好,它们也可以在更多块中,没问题。我只想保持信息的完整性。如果您有任何想法,可以与我分享。谢谢,
  • 您的问题提到了 SQL Server 和 Excel。您的问题被标记为 SQLite。请仅使用您真正使用的工具进行标记。
  • 一大块阅读的具体问题是什么?
  • 简短的回答是 - 你不能。您没有唯一键,因此不可能制定一个不会读取相同行的查询。

标签: sql-server excel


【解决方案1】:

您好,感谢您的回答,我所做的是用 vb.net 逐块​​读取它,如下所示: select * from [file1 $ a3: 500000] then [5000001: 1000000]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-10
    • 2018-10-06
    相关资源
    最近更新 更多