Как выбрать отдельные значения из файла DBF?

Я получаю данные из файла DBF и помещаю их в DataTable, дело в том, что я просто хочу получить разные данные, например:

Column1
  a
  b
  c
  b
  a

И DataTable должен быть заполнен просто:

Column1
  a
  b
  c

Есть ли способ сделать это или обойти это?

            connDBF.Open();
            string jobData1 = "SELECT * FROM HREQDETM.DBF";

            OdbcCommand cmd1 = new OdbcCommand();
            cmd1.CommandText = (jobData1);

            OdbcDataAdapter dbAdapter1 = new OdbcDataAdapter(jobData1, connDBF);

            DataSet dtSet1 = new DataSet();
            dbAdapter1.Fill(dtSet1);


            DataTable dbTable1 = dtSet1.Tables[0];

Дело в том, что я выполняю миграцию, а данные находятся в файлах DBF, я хочу что-то быстрое, потому что я собираюсь запустить скрипт на моем компьютере и отправить данные через оператор VPN в SQL

2 ответа

Решение

Просто добавь DISTINCT на ваш запрос

string jobData1 = "SELECT DISTINCT Column1 FROM HREQDETM.DBF";

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

пример

Column1  Column2
  a         1
  b         1
  c         1
  b         2
  a         2

Поэтому, когда дубликаты для a удалено то, что вы хотите отобразить в column2: 1 или же 2?
Ты можешь написать:

SELECT
   Column1,
   MIN(Column2) --To get 1 Or MAX(Column2) to get 2
FROM 
  HREQDETM.DBF
GROUP BY 
  Column1

Я бы порекомендовал прочитать еще немного о Группе по и агрегатам

Используйте DISTINCT:

SELECT DISTINCT Column1 FROM HREQDETM.DBF

В качестве альтернативы, если вы хотите сохранить все данные в DataTable и просто извлечь отдельные значения (поэтому вам не нужно запрашивать источник, вы можете просто создать DataView и отфильтровать его по разным значениям:

DataView view = new DataView(table);
DataTable distinctValues = view.ToTable(true, "Column1");
Другие вопросы по тегам