我正在尝试显示三列中的最高分并按此对它们进行排序,它确实按每列的最高分对它们进行排序但不返回姓氏和名字。下面是一段代码。
import sqlite3
connection = sqlite3.connect("class1.db")
cursor = connection.cursor()
cursor.execute('''SELECT score1, score2, score3,
CASE
WHEN score1 >= score2 AND score1 >= score3 THEN score1
WHEN score2 >= score1 AND score2 >= score3 THEN score2
WHEN score3 >= score1 AND score3 >= score2 THEN score3
ELSE score1
END AS high_score FROM class1 ORDER BY high_score DESC;''' )
print("Class 1:")
result = cursor.fetchall()
for r in result:
print(r)
这是它应该返回的数据:
Class 1:
('Python', 'Monty', 5, 10, 7)
这是它返回的数据:
Class 1:
(5, 10, 7, 10)
我不知道问题出在哪里,而且我对 SQL
语法也不是很了解,如有任何帮助,我们将不胜感激。包含“Python”和“monty”的列分别称为 Surname 和 Forename。
最佳答案
您应该将 surname
和 forename
连同 score1
、score2
和 score3 添加到所选字段
。
cursor.execute('''SELECT surname, forename, score1, score2, score3
...
阅读有关选择查询的更多信息 here .
Code Academy 提供免费的交互式 SQL
类(class),请访问 https://www.codecademy.com/learn/learn-sql 查看。 .
关于python - SQL获取三列最高分不返回必填字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36461901/