Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 用Python遍历SQLDW表_Sql Server_Python 3.x_Azure Sqldw - Fatal编程技术网

Sql server 用Python遍历SQLDW表

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+';

我在Microsoft Azure SQLDW中有一个表,该表有一个日期字段以及其他列。在过去10年的工作日中,每天都有一排。目前该表尚未以“按日期排序”等方式存储。以下是我迄今为止的代码:

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中进行处理。即使在实际数据库中没有插入/更新/删除数据,但计算结果仍在输出?