我想根据一些值范围(例如1到10)提取少量记录。 我建立了odbc连接,并尝试使用以下代码。
%AddDeps org.vegas-viz vegas_2.11 {vegas-version} --transitive
implicit val render = vegas.render.ShowHTML(kernel.display.content("text/html", _))
但是它正在报告:
idstart = 1
idend = 10
cursor.execute("SELECT * FROM test WHERE Serial_Num >= %s AND Serial_Num <= %s", (idstart , idend ))
我看到熊猫read_sql用于sqlite。有什么方法可以针对MS SQL SERVER执行此操作。
答案 0 :(得分:3)
不同的Python数据库驱动程序使用不同的占位符。虽然有些将%s
用作未命名的占位符,而另一些使用?
:
cursor.execute(
"SELECT * FROM test WHERE Serial_Num >= ? AND Serial_Num <= ?",
(idstart , idend)
)
您需要参考确切的数据库驱动程序文档以了解使用哪种样式,或查阅<module>.paramstyle
attribute。
Pandas read_sql
不仅适用于SQLite,而且如果您不使用SQLite,那么您必须使用SQLAlchemy来管理连接。 SQLAlchemy supports Microsoft SQL server connections。