2017-04-26 103 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#中编写更复杂的东西。