【发布时间】:2020-05-03 01:11:14
【问题描述】:
我有多个临时表创建和一个最终选择语句的 sql 查询。
让我们想象一下查询示例:
select
t1.Variable11,
t1.Variable12,
t2.Variable13
into #R1
from t1
join t2
on t1.Key1= t2.key1 and t1.Key2= t2.key2
where t1.Variable1 > 100
select
t3.Variable21,
t3.Variable22,
t4.Variable23
into #R2
from t3
join t4
on t3.Key1= t4.key1 and t3.Key2= t4.key2
where t3.Variable1 > 200
select
#R1.*,
#R2.*
from #R1
join #R2
on #R1.Variable11= #R2.Variable21
我使用 pyodbc 连接器连接到 sql server:
connection = pyodbc.connect(driver='{SQL Server Native Client 11.0}', server=server_name,
database=db_name, trusted_connection='yes', MARS_Connection='yes')
我不想重写代码。
我只想编写将返回熊猫数据框的函数。
当我尝试使用pandas.read_sql() 函数时,我收到错误:
TypeError: 'NoneType' 对象不可迭代
当我尝试使用pyodbs.execute() 时收到错误:
没有结果。以前的 SQL 不是查询。
如何处理创建多个临时表和一个最终选择语句的 sql 脚本?
【问题讨论】:
-
您的最终选择使用
R1和R2,而您正在选择#R1和#R2。 -
对
R1和R2使用临时表 -
是的,我应该在示例中写#R1 和#R2。但这不是这里的问题。我在实际例子中没有这个问题。
-
将
SET NOCOUNT ON;放在脚本块的开头,看看是否有帮助。
标签: python sql pandas dataframe pyodbc