在sql中,“+”符号表示什么?

92vpleto  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(565)
SELECT
a.*
,b.*
FROM
(SELECT b.s ,b.C ,b.score
,(SELECT COUNT(*) FROM sc a WHERE a.c='01'AND a.score>b.score)+1 mc
FROM sc b  WHERE b.c='01' HAVING mc BETWEEN 2 AND 3

+1是什么意思?该查询试图对每门课程的第二名和第三名学生及其成绩进行排名。
谢谢

pnwntuvh

pnwntuvh1#

它只是加法运算符(plus)
因此,它向子查询返回的结果中添加1。这是因为子查询总是返回一个整数,因为它是一个计数(*),没有分组依据

(SELECT COUNT(*) FROM sc a WHERE a.c='01'AND a.score>b.score)

如果子查询retruns的计数为0,则 mc 列将为0+1=1
此外,您的查询格式不正确:您有一个 HAVING 不带a的子句 GROUP BY 条款

相关问题