在pandas数据fram中读取和执行sql查询

2024-06-03 10:37:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个长assetsql查询,它在Python中运行得很好,进入数据帧 但是我有几百个,所以我尝试创建一个函数来读取我的文件并执行它们。 sql语句如下所示:

"SELECT IIf(Left([Milestone_Next_Expected],4)='Proc',1, \
 ....\
 120 lines
 ....\
dbo.MY_data_value"

这就是函数

^{pr2}$

这就是所谓的函数:

Execute_SQL_from_a_File(QRYHOME + "qryBook" + str(BNUM) + "_" + str(IND) + ".sql", BNUM, home, conn1)

当我运行query as函数时,收到以下错误:

: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]The 
identifier that starts with 'SELECT 
IIf(Left([Milestone_Next_Expected],4)='Proc',1, 
\\\nIIf(Left([Milestone_Next_Expected],4)='Subm',2, 
\\\nIIf(Left([Milestone_N' is too long. Maximum length is 128.")

我不明白为什么会出现长度错误,因为我可以通过将sqlFile创建为一个长字符串来运行相同的查询:

"SELECT IIf(Left([Milestone_Next_Expected],4)='Proc',1, \
 ....\
 120 lines
 ....\
dbo.MY_data_value"

任何帮助将不胜感激!在


Tags: 函数sqldatavaluemyprocleftselect
1条回答
网友
1楼 · 发布于 2024-06-03 10:37:28

方法正确: 1sql脚本脚本不需要任何行延续符号“\” 不需要用引号括起来 2读取输入文件的正确方法是:

file=open(filename,'r')
SQLfile = s = " ".join(file.readlines())

现在,当代码执行时,通过pd.read_sql_查询(SQLfile,连接1) 没有错误

相关问题 更多 >