2017-01-30 6 views
1

아래 링크에서 볼 수 있듯이 Azure에 SQL 데이터베이스가 있습니다. 파이썬에서 애플릿을 pyodbc를 사용하여 데이터베이스에있는 사람들의 엘로스를 업데이트하고 있습니다. 세 개의 연결 객체 (각 열에 대해 하나씩)를 만들고 while 반복을 사용하여 반복합니다.Azure SQL 데이터베이스의 한 열이 정렬 된 것으로 나타납니다.

사용자가 입력 한 ID 코드를 찾을 때까지 반복하고 모든 커서가 루프 동안 동일하므로 평가 및 이름 커서는 항상 같은 행에 있습니다. 어떤 이유로 제외

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

는 ID 컬럼으로 정렬된다. 왼쪽의 표는 Microsoft SQL Server Management 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

원하는 열로 쿼리를 'ORDER BY'하지 않는 이유는 무엇입니까? – juunas

+0

어떻게하면됩니까? 평가 또는 이름을 주문할 수 없습니다. 각 행은 자체적으로 머물러야합니다 (각 ID는 특정 이름/등급과 일치해야합니다). – user3364161

답변

1

이 세 가지 쿼리에 ORDER BY 절을 적용 :

여기에 (의 관련 부분) 내 코드입니다. LocalID이 (가) 기본 키 ID 열이라고 가정합니다. 지정된 ORDER BY 절없이

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")) 

는 SQL Server는 SELECT 문에서 열을 기준으로 주문할 수 있습니다.

+1

고맙습니다. – user3364161