Как выполнить SQL, пока проходит цикл pandas библиотеки sqlalchemy. Не закрывайте этот вопрос, так как я не нашел ответов на этот вопрос - PullRequest
1 голос
/ 21 января 2020

Я пытаюсь выполнить и sql запрос через python. Это основано на моем первом вопросе о том, как разделить столбцы на основе двух фреймов данных (разделение расширений компании и названия компании). Поскольку мне было трудно кодировать в python, я использовал запрос sql для разделения и выполнения через python. Я могу выполнять только такие запросы, как обновление и т. Д. c, но при попытке использования циклов не получаю ни вывода, ни ошибок.

Мой ввод:

Original_Input                                            Cleansed_Input                        
DORO INC ( O/S DORO SAFETY & SECURITY)                    DORO INC OS DORO SAFETY SECURITY      
Iris Diagnostics, a Division of Iris International Inc    Iris Diagnostics a Division of Iris 
                                                          International Inc     
GINGI-PAK a division of The Belport Co., Inc.             GINGIPAK a division of The Belport Co Inc 

Мой ожидаемый вывод :

Original_Input                                            Cleansed_Input                             
DORO INC ( O/S DORO SAFETY & SECURITY)                    DORO INC OS DORO SAFETY SECURITY      
Iris Diagnostics, a Division of Iris International Inc    Iris Diagnostics a Division of Iris 
                                                          International Inc     
GINGI-PAK a division of The Belport Co., Inc.             GINGIPAK a division of The Belport Co Inc 
Core_Input                                                Type_Input

Iris Diagnostics a Division of Iris International         Incorporated       
GINGIPAK a division of The Belport                        Company Incorporated

Когда я попробовал только оператор обновления, он работал нормально, но для расщепления был задан приоритет, поэтому я попытался использовать while l oop и выполнить через python, который не сделал Работа. Он работал нормально в sql, но не через python.

В коде Tempcompanyname моя таблица с вводом и выводом. Company_Extension - это еще одна таблица с расширением, сокращением и приоритетом.

Например, моя вторая таблица выглядит следующим образом.

Name_Extension  Company_Type         Priority
co llc          Company LLC            2
Pvt ltd         Private Limited        8
Corp            orporation             4
Co inc          Company Incorporated   9

Это мой фрагмент кода.

engine.execute('''Declare @priority int = (select max(priority) from [company_Extension])
              Declare @p int=1
              while @p <= @priority
              begin

              update A 
              set A.Type_input = B.Company_Type 
              from [TempCompanyName]A (nolock), [company_Extension]B  where  A.Cleansed_Input like 
              '%'+B.Name_Extension and Priority=@p

              update A 
              set A.Core_Input =replace(A.[Cleansed_Input],B.Name_Extension,'')
              from [TempCompanyName]A (nolock), [company_Extension]B  where  A.Cleansed_Input like 
              '%'+B.Name_Extension and Priority=@p

              set @p=@p+1
              end''')

engine.execution_options(autocommit=True)

Заранее спасибо за помощь.

...