Я пытаюсь выполнить и 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)
Заранее спасибо за помощь.