修改sql语句错误,SELECT NameClassNameIFNULL(sum(case SubjectName whenSQL Serverthen scoreend),0)" +"as SQLSERVERIFNULL(sum(case SubjectName whenjava webthen score end),0)+“as JAVAWEB from scorestuclassSubject where scoreSID=stu.SID" +"and stu.ClassiD=class.ClassID AND Subject.SubjectlD=score.SubjectID and I +"Name like?GROUP BY NameClassNameORDER BYNameClassName" ResultSet rs=dbquery(sql“%"+requestqetParameter("id")+"%”);
时间: 2024-03-02 13:51:58 浏览: 125
根据您提供的SQL语句,我发现其中有几个错误。我将逐一指出并进行修改,希望能够帮助到您。
1. 在 SQL 语句中,字符串需要用单引号或双引号括起来。而您在 SQL Server 和 Java Web 的分数计算中,没有使用单引号或双引号。请将这两个计算式修改为如下形式:
```
sum(case SubjectName when 'SQL Server' then score end)
sum(case SubjectName when 'java web' then score end)
```
2. 在 SQL 语句中,字符串的拼接需要使用加号 (+)。而您在 JAVAWEB 的分数计算中,使用了逗号 (,)。请将这个计算式修改为如下形式:
```
sum(case SubjectName when 'java web' then score end) as JAVAWEB
```
3. 在 SQL 语句中,字符串的拼接需要使用加号 (+)。而您在执行 db.query() 方法时,使用了逗号 (,)。请将这个方法修改为如下形式:
```
ResultSet rs = db.query(sql + "%" + request.getParameter("id") + "%");
```
修改后的完整 SQL 语句如下所示:
```
SELECT NameClassName, IFNULL(sum(case SubjectName when 'SQL Server' then score end),0) as SQLSERVER, IFNULL(sum(case SubjectName when 'java web' then score end),0) as JAVAWEB
FROM score, stu, class, subject
WHERE score.SID = stu.SID AND stu.ClassiD = class.ClassID AND subject.SubjectlD = score.SubjectID AND Name like ?
GROUP BY NameClassName
ORDER BY NameClassName
```
希望我的回答能够对您有所帮助。
阅读全文