Как выбрать отдельные значения из файла 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");