SQL 从 table 中获取符合条件的学生的查询错误
SQL Query Error to get the eligible students from table
我想获得
的结果
subject
应该是 PHY 或 CHE,last_mark
应该大于 74
- 对于条件 1,如果失败则
total_gpa
应该大于 2.4125
- 无论如何
total_gpa
应该大于 1.5000
我使用的查询如下,
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE subject='PHY' | 'CHE'
AND last_mark>74 OR total_gpa >2.4125 OR total_gpa > 1.5000
这里我知道我的查询是完全错误的,total_gpa >2.4125 OR total_gpa > 1.5000
是没有意义的。但是我无法编写查询来解决我的问题,有人可以帮助我吗?
您需要将内容括在括号中:
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE total_gpa > 1.5000 AND (((subject='PHY' OR subject = 'CHE')
AND last_mark>74) OR total_gpa >2.4125)
您在对 select 行的查询中请求某些条件。
1.条件1
subject
应该是 PHY 或 CHE,last_mark
应该大于 74。所以查询要像这样
(subject='PHY' OR subject='CHE') AND last_mark > 74
因为,你想要 (TRUE OR FALSE) AND TRUE = 'TRUE'
或 (FALSE OR TRUE) AND TRUE = 'TRUE'
。所以那个时候需要那个支架。
2。条件2
对于条件 1,如果失败则 total_gpa
应该大于 2.4125。所以你要检查是否Condition 1 OR Condition 2
。所以查询要像这样
((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125
3。条件 3
无论如何 total_gpa
应该大于 1.5000。所以你正在检查所有应该有 total_gpa > 1.5000
的学生。所以查询想要像 (ANY CONDITION) AND total_gpa > 1.5000
.
(((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125) AND total_gpa > 1.5000
所以最终查询要像下面这样,
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE
(((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125)
AND total_gpa > 1.5000
我想获得
的结果subject
应该是 PHY 或 CHE,last_mark
应该大于 74- 对于条件 1,如果失败则
total_gpa
应该大于 2.4125 - 无论如何
total_gpa
应该大于 1.5000
我使用的查询如下,
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE subject='PHY' | 'CHE'
AND last_mark>74 OR total_gpa >2.4125 OR total_gpa > 1.5000
这里我知道我的查询是完全错误的,total_gpa >2.4125 OR total_gpa > 1.5000
是没有意义的。但是我无法编写查询来解决我的问题,有人可以帮助我吗?
您需要将内容括在括号中:
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE total_gpa > 1.5000 AND (((subject='PHY' OR subject = 'CHE')
AND last_mark>74) OR total_gpa >2.4125)
您在对 select 行的查询中请求某些条件。
1.条件1
subject
应该是 PHY 或 CHE,last_mark
应该大于 74。所以查询要像这样
(subject='PHY' OR subject='CHE') AND last_mark > 74
因为,你想要 (TRUE OR FALSE) AND TRUE = 'TRUE'
或 (FALSE OR TRUE) AND TRUE = 'TRUE'
。所以那个时候需要那个支架。
2。条件2
对于条件 1,如果失败则 total_gpa
应该大于 2.4125。所以你要检查是否Condition 1 OR Condition 2
。所以查询要像这样
((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125
3。条件 3
无论如何 total_gpa
应该大于 1.5000。所以你正在检查所有应该有 total_gpa > 1.5000
的学生。所以查询想要像 (ANY CONDITION) AND total_gpa > 1.5000
.
(((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125) AND total_gpa > 1.5000
所以最终查询要像下面这样,
SELECT person_id,name,total_gpa,status
FROM data_table
WHERE
(((subject='PHY' OR subject='CHE') AND last_mark > 74) OR total_gpa > 2.4125)
AND total_gpa > 1.5000