私は、次のデータベースの問題を解決しようとしている、SQL とデータベースの学習の初心者です。
2 つの列名とマークを持つテーブルがあります。このテーブルに基づいて、700 より大きい場合は「A」、700 未満で 500 より大きい場合は「A」、「B」または「C」のような成績を返すクエリを作成します。主なポイント テーブルには 2 つの列しかありません。
クエリは次のとおりです。
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);
次のエラーが表示されます。
エラー 1242 (21000): サブクエリは複数の行を返します
最後のコマンドについてヘルプが必要です。