Sql server 用Python遍历SQLDW表
我在Microsoft Azure SQLDW中有一个表,该表有一个日期字段以及其他列。在过去10年的工作日中,每天都有一排。目前该表尚未以“按日期排序”等方式存储。以下是我迄今为止的代码:Sql server 用Python遍历SQLDW表,sql-server,python-3.x,azure-sqldw,Sql Server,Python 3.x,Azure Sqldw,我在Microsoft Azure SQLDW中有一个表,该表有一个日期字段以及其他列。在过去10年的工作日中,每天都有一排。目前该表尚未以“按日期排序”等方式存储。以下是我迄今为止的代码: import pyodbc driver = '{ODBC Driver 13 for SQL Server}' conn = pyodbc.connect('DRIVER='+driver+'; PORT=1433;SERVER='+server+'; DATABASE='+database+';
import pyodbc driver = '{ODBC Driver 13 for SQL Server}'
conn = pyodbc.connect('DRIVER='+driver+';
PORT=1433;SERVER='+server+';
DATABASE='+database+';
UID='+username+';
PWD='+ password)
cursor = conn.cursor() cursor.execute("SELECT * FROM index_att") i = 0 for row in cursor: i += 1 print(i)
如果我使用python循环遍历此表中的每一行,并且希望按时间顺序(从最早的日期到当前日期)存储该表是否需要按日期排序?我是否需要添加一个额外的增量ID,从最早日期的1开始,每天递增
或者有没有一种方法可以在数据未排序的情况下通过日期进行循环
目前该表尚未以“按日期排序”等方式存储
数据的存储方式无关紧要。如果您想要有序数据,客户端只需要在查询中使用一个子句来请求它。我还要求您检查您的流程,因为在Azure SQL数据仓库上执行行级操作可能会导致大量数据移动。将order by添加到select语句中:
cursor = conn.cursor()
cursor.execute("SELECT * FROM index_att ORDER BY [MyDate]")
i = 0
for row in cursor:
i += 1 print(i)
为了帮助我们需要查看您的代码…您应该查看。好的,我可以按顺序获得有序格式的输出。但是,如果有人希望按顺序(例如:数据库中的每一天都将股票价格与前一天的价格进行比较)运行每日比较的计算,那么如果数据未按顺序排列且没有增量ID字段,该如何进行呢?您可以使用TSQL窗口功能。请看,我们的一些用户将仅通过Python访问数据。您是否建议将基于(按日期排序)的行ID添加到DB中,这样他们就不必在代码中自己执行此操作?对于类似这样的内容:“对于DB中的每一天,将股票价格与前一天的价格进行比较)如果数据未排序且没有增量ID字段,如何执行此操作?”添加行号列并不会消除在TSQL中写入逻辑的需要。例如,他们无法将所有DW数据提取到python中进行处理。即使在实际数据库中没有插入/更新/删除数据,但计算结果仍在输出?