我试图使用python和pandas编写SQL IN子句并使用SQL分析器我发现以下内容从我的python程序传递到SQL服务器但没有返回数据 - 我认为它因格式错误而产生内部错误但我无法确定问题:
declare @p1 int
set @p1=NULL
exec sp_prepexec @p1 output,N'@P1 nvarchar(22)',N'
SELECT [Date], [Person], [Amount]
FROM [Logs].[dbo].[Results]
WHERE [Date] >= GETDATE()-1 AND [Person] IN @P1',N'(''person1'', ''person2'')'
select @p1
谁能帮我辨别出什么问题?
你可以在这里尝试一些不同的东西来诊断问题:
如果您使用的是pyodbc,请查看以下链接,了解如何处理错误:
我不相信你可以指定一个“IN”字符串作为这样的参数。然而,这将在sql server中工作。如果它不是sql找到类似的功能,或者自己编写。
AND [Person] IN (select * from string_split(@P1,','))
经过一些审查和与dbadmin的快速聊天,我已经决定使用python来动态构建我的查询更容易。谢谢你的努力。