Создание фильтра из файла в SQL с помощью OPENROWSET BULK и использование pyodbc - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть SQL-запрос, который извлекает данные из базы данных.Данные извлекают различные количества и должны иметь столбцы, основанные на количествах, которые являются довольно большими.Явное указание этих условий в запросе sql становится беспорядочным и приводит к ошибкам (от копирования и вставки).Поэтому я пытаюсь построить фильтр для столбцов (где условия должны быть выполнены одновременно).Я знаю, что метод OPENROWSET BULK может помочь, но не уверен, как его использовать в этом случае.

Файл SQL: mysql.sql и файл, из которого нужно извлечь два столбца (x, y), - это myfile.txt

Мой пример SQL-запроса:

SELECT a.item, a.class, a.group, a.date, a.batch, a.value, a.subitem, b.phase, b.desc 
FROM tableA a INNER JOIN tableB b 
ON a.class = b.group and a.date = b.date 
JOIN 
OPENROWSET (
             BULK 'c:\myfile.txt'
    ) File ON a.class  = File.class and a.group = File.group and b.desc = File.desc

myfile.txt выглядит следующим образом:

дескриптор группы классов

aa1 gg1 dd1

aa2 gg2 dd2

xxx yyy zzz

... .... ....

..... ..... ....

и так далее.Этот файл довольно большой.

Пожалуйста, дайте мне знать, если я делаю правильно и какие изменения необходимы.

Я обнаружил, что файл формата может быть необходим.Однако я не уверен, как создать файл форматирования из файла csv и как его использовать.

Кроме того, после создания запроса я планирую использовать pyodbc для извлечения данных из базы данных.Будет ли это возможно?

Заранее спасибо.

...