2017-01-30 32 views
1

我在Azure中擁有一個SQL數據庫,如下面的鏈接所示。我使用pyodbc在python中創建一個applet來更新數據庫中的人員的Elos。我製作了三個連接對象(每個對應一列),並使用一個while循環遍歷。Azure SQL數據庫的一列出現排序

它將接受用戶的輸入,迭代直到找到輸入的ID代碼,並且由於所有遊標都在相同的循環中,評分和名稱遊標將始終位於同一行中。

https://i.stack.imgur.com/ZssyW.png

除了出於某種原因,ID列進行排序。左邊的表是從Microsoft SQL Server管理服務器的屏幕截圖,並在右邊的是三國時光標遍歷每一次打印會發生什麼。

我該如何解決這個問題/這是什麼原因造成的?

這裏的(相關部分)我的代碼:

current_id = (ID_cursor.execute("SELECT LocalID FROM MEMBERS")) 
current_rating = (rating_cursor.execute("SELECT Rating FROM MEMBERS")) 
current_firstname = (firstname_cursor.execute("SELECT FirstName FROM MEMBERS")) 

counter = 0 
while counter < 10: 
    counter += 1 
    temp_id = ID_cursor.fetchone()[0] 
    temp_rating = rating_cursor.fetchone()[0] 
    temp_firstname = firstname_cursor.fetchone()[0] 

    print(temp_id, temp_firstname, temp_rating) 

print("end") 
+0

爲什麼不只是用所需的列「查詢」? – juunas

+0

我該怎麼做?我不能爲了收視率或名稱,每行有留在本身(每個ID必須匹配一個特定的名稱/等級) – user3364161

回答

1

應用的ORDER BY子句全部三個查詢,以便它們的排序方式相同。我假設LocalID是您的主要關鍵標識列嗎?

current_id = (ID_cursor.execute("SELECT LocalID FROM MEMBERS ORDER BY LocalID")) 
current_rating = (rating_cursor.execute("SELECT Rating FROM MEMBERS ORDER BY LocalID")) 
current_firstname = (firstname_cursor.execute("SELECT FirstName FROM MEMBERS ORDER BY LocalID")) 

沒有指定的ORDER BY子句,SQL Server可能由SELECT語句中的列順序。

+1

謝謝你這麼多,這個工作。 – user3364161