SQL查询错误:subquery returns more than one row

标签 sql database linux

我是 SQL 和 DATABASE 学习的新手,试图解决以下数据库问题:

我们有一个包含两列名称和标记的表。根据此表编写一个查询,返回成绩,如果分数大于 700,则为“A”,如果小于 700,则为“B”,如果大于 500,则为“C”。主点表只有两列。

Here's the query:

CREATE TABLE class (name varchar(20),marks int); 
INSERT INTO class VALUES ("anu",1000),("abhi",100),("mittal",800),("chanchal",1200),("gurpreet",750),("somesh",1000),("sonia",600),("khushbu",450),("rashi",1100),("jyoti",550); 
Select * FROM class; 

它显示了下表:

| name     | marks | 

| anu      |  1000 | 

| abhi     |   100 | 

| mittal   |   800 | 

| chanchal |  1200 | 

| gurpreet |   750 | 

| somesh   |  1000 | 

| sonia    |   600 | 

| khushbu  |   450 | 

| rashi    |  1100 | 

| jyoti    |   550 |
<小时/>
SELECT * FROM class where Grade =(SELECT CASE WHEN marks >700 THEN "A" WHEN marks<700 and marks<700 THEN "B" ELSE "C" END as GRADE FROM class); 

它显示以下错误:

ERROR 1242 (21000): Subquery returns more than 1 row

需要有关最后一个命令的帮助。

最佳答案

select name , 
CASE WHEN marks >700 THEN 'A' WHEN marks<700 and marks<700 THEN 'B' ELSE 'C' END as GRADE
from class

上述查询应该满足您的需求,这将根据您设置的条件显示姓名和成绩。 我希望您所说的 SQL 是指 Sql Server。

关于SQL查询错误:subquery returns more than one row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606241/

相关文章:

linux - 如何获得 shell 脚本中的函数列表?

具有隐式数据类型转换的 MySQL 查询返回错误结果

基于单独单词的 SQL 搜索查询

php - MYSQL 添加约束错误

sql - 如何创建多个一对一

java - 使用 Tomcat 配置 Apache Web 服务器并尝试部署 war 文件

SQL Server 计数器列在添加新记录时递增

sql - 复合主键和链表规则

mysql - 在 sql 脚本中一起使用 sum 和 max

linux - bash 文件中的 shell 函数