附加到SQL列出的结果

时间:2019-07-09 18:29:48

标签: python sql-server list

我有一个SQL Server数据库,该数据库的表列出了其他表以及其中的一些元数据。我可以通过Python将其提取到列表中。不过,我要做的是查询每个表中的行数,然后将结果附加到我的列表中。

因此,例如,我运行脚本的第一部分,并获得一个项目列表,每个项目包含3个项目(名称,活动,表名称)的列表。然后,我想循环浏览列表,选择第三项,然后在SQL查询中使用它,然后将结果附加到列表的第四项中。

它开始了

[[table1, act1, Table_1],[table2, act2, Table_2],[table3, act3, Table_3]]

第二部分,首先获取Table_1,对行进行计数,然后将其追加到列表中

[[table1, act1, Table_1,10],[table2, act2, Table_2],[table3, act3, Table_3]]

,然后列出列表2,等等

[[table1, act1, Table_1,10],[table2, act2, Table_2,16],[table3, act3, Table_3]]

尝试了几件事,但没有进一步!

谢谢。

import pyodbc

conn = pyodbc.connect(connetStr)
cursor = conn.cursor()

wffList=[]
cursor.execute('SELECT C_NAME,C_ACTIVE, C_TABLE_NAME from T_FORM_HEAD')
for row in cursor:
    wffList.append(row)

for row in wffList:
    tabName=row[2]
    quer=('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount=cursor.fetchone()

1 个答案:

答案 0 :(得分:0)

您可以创建新列表并将所有四个值附加到行

new_results = []

for row in wffList:
    tabName = row[2]

    quer = ('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount = cursor.fetchone()

    row.append(rowCount)

    new_results.append(row)

print(new_results)

或者您可以使用枚举获取行号

for number, row in enumerate(wffList):
    tabName = row[2]

    quer = ('SELECT Count(*) FROM '+ tabName)
    cursor.execute(quer)
    rowCount = cursor.fetchone()

    wffList[number].append(rowCount)

print(wfflist)

但是您可能还可以编写一个SQL查询来一次获得所有查询。

但这对我来说可能很复杂。