我是 SQL 和 DATABASE 学习的新手,试图解决以下数据库问题:
我们有一个包含两个列名和标记的表。根据该表编写一个查询,返回分数,例如如果分数大于 700,则为“A”,如果小于 700,大于 500,则为“B”或“C”。要点表只有两列。
这是查询:
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):子查询返回多于 1 行
最后一个命令需要帮助。