2017-04-26 25 views
2

我在python中有一個函數(token_sort_ratio()),它比較兩個字符串並以百分比匹配的方式給出輸出。我想在sql查詢中使用該函數,我使用pyodbc在python中運行。但我無法實現它。任何人都可以幫助我做到這一點。? 這裏是我的代碼如何在sql select語句中使用python函數

cursor = conn.cursor() 
sql_query ="""select """+fuzz.token_sort_ratio("""[MAT DESC],MAT_GROUP_DESC""")+""" as percentage_match ,[MAT DESC] MAT_GROUP_DESC from Sample_data """ 
cursor.execute(sql_query) 
rows = cursor.fetchall() 
+1

這沒有意義所有。它怎麼可能工作? –

+0

是否有任何解決方法在表的列上使用python用戶定義函數? –

+1

歡迎來到Stack Overflow。您可以從數據庫中讀回所有記錄並使用Python進行處理,也可以從頭開始在SQL中編寫百分比匹配。我會建議在SQL中重寫它,因爲它會更有效率。你不能要求SQL來運行你的Python命令。 –

回答

1

你不能。你甚至無法通過IronPython編譯成DLL Assembly和這樣的技巧。最好的辦法是將它重寫成T-SQL或者 - 也許有點簡單的東西 - 併入.NET語言之一,並通過.dll將它們加載到SQL Server中。我認爲F#可能與Python最爲相似,但另一方面,爲SQL Server編寫.dll文檔主要針對C#/ VB.net,因此可以考慮在C#中編寫更復雜的東西。