python - SQL获取三列最高分不返回必填字段

标签 python sql sqlite

我正在尝试显示三列中的最高分并按此对它们进行排序,它确实按每列的最高分对它们进行排序但不返回姓氏和名字。下面是一段代码。

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。

最佳答案

您应该将 surnameforename 连同 score1score2score3 添加到所选字段

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/

相关文章:

python - 在 pygame 中实现 Rect 对象和球之间的碰撞检测功能

php - 违反完整性约束 : 1052

sql - 如何使 SELECT NEXT VALUE 在 SQL Server 中工作?

.net - 决定我是否应该拆分表格

build - gox - 为 sqlite3 抛出错误并且所有构建都失败

python - 如何获取XML中特定根的数据(通过python)

python - 通过 python 子进程启动 linux 命令不能按预期工作

python - 使用 Numpy 更快地提取多维数组的下三角?

java - SQLite - max(列)的棘手查询

sql - 语法错误: SQL update with count and inner join