Прочитайте 50% таблицы, исключая последнюю строку

#sql-server #excel

Вопрос:

Я читаю Excel, в котором более миллиона записей и 29 столбцов, я читаю этот Excel, как если бы это была таблица в Microsoft SQL Server.

 select * from [file $]
 

В этой таблице есть только категориальные поля, суммы и даты, в ней нет уникального идентификатора или дополнительных полей (я не могу создать или отредактировать таблицу). Из — за большого объема данных у меня возникла необходимость прочитать их в 2 блока.

Как я могу прочитать 1-е 50% , а затем остальные 50%

Я провожу тестирование с:

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

с последующим:

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

Но последняя строка будет повторяться, как я мог ее исключить?

Я читал, что в некоторых случаях он неправильно возвращает данные.

Я рассматриваю 2 блока по 50%, но их может быть любое количество. Я просто должен убедиться, что информация полна.

Любые комментарии будут очень полезны.

Спасибо,

Комментарии:

1. В частности, почему вам нужно читать его в двух блоках?

2. привет, они также могут находиться в большем количестве блоков, без проблем. Я просто хочу, чтобы сохранялась целостность информации. Если у вас есть какие-либо идеи, вы можете поделиться ими со мной. Спасибо,

3. В вашем вопросе упоминаются SQL Server и Excel. Ваш вопрос помечен как SQLite. Пожалуйста, отмечайте только тот инструмент, который вы действительно используете.

4. В чем конкретно проблема с чтением в одном большом блоке?

5. Короткий ответ таков: вы не можете. У вас нет уникального ключа, поэтому невозможно сформулировать запрос, который не будет считывать одни и те же строки.

Ответ №1:

Здравствуйте, спасибо за ответы, то, что я сделал, это прочитал его с vb.net по блокам, вот так: выберите * из [файл1 $ a3: 500000], затем [5000001: 1000000]