With PYODBC sql 语句中的语句
With statement in PYODBC sql statement
如果我在 SQL 语句中使用 With 子句,我将无法使用 pyodbc 执行 SQL 语句。
这个有效:
import pyodbc
cnxn = pyodbc.connect('DSN=database;PWD=password' )
cursor = cnxn.cursor()
sql = """
SELECT top 10 *
FROM table
"""
qnnum = pd.read_sql(sql, cnxn)
这不起作用:
import pyodbc
cnxn = pyodbc.connect('DSN=database;PWD=password' )
cursor = cnxn.cursor()
sql = """
With A as(SELECT top 10 *
FROM table)
select * from A
"""
qnnum = pd.read_sql(sql, cnxn)
我能够通过简化格式并从原始代码中删除注释来解决问题。
我已经在 Teradata( 15.10.07.37) 上使用 pyodbc(Python 3.7) 测试了 WITH 子句并且它有效。
在以下形式的查询字符串中也支持注释。
/*评论1 */
希望对您有所帮助。
如果我在 SQL 语句中使用 With 子句,我将无法使用 pyodbc 执行 SQL 语句。
这个有效:
import pyodbc
cnxn = pyodbc.connect('DSN=database;PWD=password' )
cursor = cnxn.cursor()
sql = """
SELECT top 10 *
FROM table
"""
qnnum = pd.read_sql(sql, cnxn)
这不起作用:
import pyodbc
cnxn = pyodbc.connect('DSN=database;PWD=password' )
cursor = cnxn.cursor()
sql = """
With A as(SELECT top 10 *
FROM table)
select * from A
"""
qnnum = pd.read_sql(sql, cnxn)
我能够通过简化格式并从原始代码中删除注释来解决问题。
我已经在 Teradata( 15.10.07.37) 上使用 pyodbc(Python 3.7) 测试了 WITH 子句并且它有效。
在以下形式的查询字符串中也支持注释。
/*评论1 */
希望对您有所帮助。