我正在尝试使用ms sql server中的pyodbc获取数据。我收到以下错误:
ProgrammingError:('42000','[42000] [Microsoft] [ODBC SQL Server 驱动程序] [SQL Server] SQL语句的某些部分也是嵌套的 深。重写查询或将其分解为较小的查询。 (191) (SQLExecDirectW)')
代码如下:
conn = pyodbc.connect('DRIVER={SQL Server};SERVER=127.0.0.1;DATABASE=Morphemes;')
cursor = conn.cursor()
Func = list()
sql_VerbDecl = "SELECT (stem_.kök + conj_.suffix) as tokenn FROM TBL_Stem as stem_ INNER JOIN TBL_VerbDecl as conj_ on conj_.node = stem_.node;"
cursor.execute(sql_VerbDecl)
rows = cursor.fetchall()
问题是unicode问题。当我把stem_.kök改成stem_.kok时,问题就解决了。
答案 0 :(得分:0)
你不需要任何“AS blah”。尝试完全相同的代码,除了sql_VerbDecl =“SELECT 1;”看看你是否得到了同样的错误。试试这个,它可能不是确切的语法,但你应该明白SELECT "TBL_Stem.kök", "TBL_VerbDecl.suffix" FROM "TBL_Stem" INNER JOIN "TBL_VerbDecl" ON "TBL_Stem".node = "TBL_VerbDecl".node;
请参阅:http://www.w3schools.com/sql/sql_join_inner.asp关于如何INNER JOIN。此外,在您的表名或表列包含大小写的任何时候,您需要将其包围在“”中,否则SQL将不知道它是否大写。